From: <Saved by Windows Internet Explorer 7>
Subject: RubyLearning.com Blog
Date: Thu, 29 Nov 2007 20:33:20 +0100
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01C832C7.14D3E190"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://rubylearning.com/blog/2007/11/26/akitaonrails-on-ruby-symbols/

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD=20
profile=3Dhttp://gmpg.org/xfn/1><TITLE>RubyLearning.com Blog</TITLE>
<META content=3DINDEX,FOLLOW name=3DROBOTS>
<META content=3D"RubyLearning.com Blog" name=3DTitle>
<META content=3D"A blog on everything Ruby and Ruby on Rails." =
name=3Ddescription>
<META content=3D"A blog on everything Ruby and Ruby on Rails." =
name=3Dabstract>
<META=20
content=3D"ruby blog,ruby blogs,ruby guide,ruby tutorials,ruby =
tutorial,learn ruby,ruby,rbuy,ruyb,rubie,rubi,urby,ruby on rails,ruby =
rails,raisl,ruby on rails consulting,ruby learning,quick ruby guide,ruby =
services,ruby tutoring,student loans,distant learning,tutoring,online =
learning,remote desktop,online training,computer =
learning,learning,learning services,learning ruby,institute for =
learning,ruby programming,ruby on rails servers,ruby on rails =
hosting,ruby on rails development,developing with ruby,ruby training"=20
name=3Dkeywords>
<META content=3DGlobal name=3DDistribution>
<META content=3D"Satish Talim" name=3Dauthor>
<META content=3D"(c) Satish Talim 2006 and beyond..." name=3Dcopyright>
<META content=3D"1 days" name=3Drevisit-after>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3DUTF-8">
<META content=3D"MSHTML 6.00.6000.16544" name=3DGENERATOR>
<STYLE type=3Dtext/css media=3Dscreen>@import url( =
http://rubylearning.com/blog/wp-content/themes/adsmindedwide/style.css =
);
</STYLE>
<LINK title=3D"RSS 2.0" href=3D"http://rubylearning.com/blog/feed/"=20
type=3Dapplication/rss+xml rel=3Dalternate><LINK title=3D"Comments RSS =
2.0"=20
href=3D"http://rubylearning.com/blog/comments/feed/" =
type=3Dapplication/rss+xml=20
rel=3Dalternate><LINK title=3D"RSS 0.92"=20
href=3D"http://rubylearning.com/blog/feed/rss/" type=3Dtext/xml =
rel=3Dalternate><LINK=20
title=3D"Atom 0.3" href=3D"http://rubylearning.com/blog/feed/atom/"=20
type=3Dapplication/atom+xml rel=3Dalternate><LINK=20
href=3D"http://rubylearning.com/blog/xmlrpc.php" rel=3Dpingback><LINK=20
title=3D"November 2007" href=3D"http://rubylearning.com/blog/2007/11/"=20
rel=3Darchives><LINK title=3D"October 2007"=20
href=3D"http://rubylearning.com/blog/2007/10/" rel=3Darchives><LINK=20
title=3D"September 2007" href=3D"http://rubylearning.com/blog/2007/09/"=20
rel=3Darchives><LINK title=3D"August 2007"=20
href=3D"http://rubylearning.com/blog/2007/08/" rel=3Darchives><LINK=20
title=3D"July 2007" href=3D"http://rubylearning.com/blog/2007/07/"=20
rel=3Darchives><LINK title=3D"June 2007"=20
href=3D"http://rubylearning.com/blog/2007/06/" rel=3Darchives><LINK =
title=3D"May 2007"=20
href=3D"http://rubylearning.com/blog/2007/05/" rel=3Darchives><LINK=20
title=3D"April 2007" href=3D"http://rubylearning.com/blog/2007/04/"=20
rel=3Darchives><LINK title=3D"March 2007"=20
href=3D"http://rubylearning.com/blog/2007/03/" rel=3Darchives><LINK=20
title=3D"February 2007" href=3D"http://rubylearning.com/blog/2007/02/"=20
rel=3Darchives><LINK title=3D"January 2007"=20
href=3D"http://rubylearning.com/blog/2007/01/" rel=3Darchives><LINK =
title=3DRSD=20
href=3D"http://rubylearning.com/blog/xmlrpc.php?rsd" =
type=3Dapplication/rsd+xml=20
rel=3DEditURI><!-- Powered by AdSense-Deluxe WordPress Plugin v0.8 - =
http://www.acmetech.com/blog/adsense-deluxe/ -->
<SCRIPT src=3D"http://rubylearning.com/blog/wp-includes/js/quicktags.js" =

type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://rubylearning.com/blog/wp-content/plugins/comment_quicktags.=
php"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://rubylearning.com/blog/wp-content/plugins/live-comment-previ=
ew.php/commentPreview.js"=20
type=3Dtext/javascript></SCRIPT>

<STYLE type=3Dtext/css>@import url( =
http://rubylearning.com/blog/wp-content/plugins/submititstyle.css );
</STYLE>
</HEAD>
<BODY>
<DIV id=3Dwrapper><!-- search bar -->
<DIV id=3Dsearchbar>
<DIV id=3Dsearchbox><A name=3Dtop></A>
<FORM id=3Dsearchform action=3Dhttp://rubylearning.com/blog/ =
method=3Dget><SPAN=20
class=3Dsmall style=3D"MARGIN-LEFT: 22px"><INPUT id=3Ds size=3D25 =
name=3Ds> <INPUT type=3Dsubmit value=3DSearch name=3Dsubmit></SPAN> =
</FORM></DIV><!-- time and date -->
<DIV id=3Dcurrent_time>11:32 pm - Thu 29 Nov 2007 </DIV></DIV><!-- end =
search bar -->
<DIV id=3Dheader><!-- Header Ads -->
<DIV id=3Dheaderads><A=20
href=3D"http://en.oreilly.com/toc2008/public/content/home"><IMG=20
style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
height=3D60 alt=3D"Tools of Change"=20
src=3D"http://ug.oreilly.com/banners/toc/120x60.gif" width=3D120></A> <A =

href=3D"http://www.adbrite.com/mb/landing_both.php?spid=3D63342&amp;afb=3D=
120x60-1-blue"><IMG=20
style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
alt=3DAdbrite =
src=3D"http://files.adbrite.com/mb/images/120x60-1-blue.gif"></A>=20
<DIV id=3Dtopbar>
<DIV class=3Dtopbartext>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<SCRIPT type=3Dtext/javascript><!--
google_ad_client =3D "pub-2265705826025555";
google_ad_width =3D 728;
google_ad_height =3D 15;
google_ad_format =3D "728x15_0ads_al";
//2007-06-14: RLBlog
google_ad_channel =3D "9579799412";
google_color_border =3D "545454";
google_color_bg =3D "545454";
google_color_link =3D "FFFFFF";
google_color_text =3D "FFFFFF";
google_color_url =3D "FFFFFF";
//-->
</SCRIPT>

<SCRIPT src=3D"" type=3Dtext/javascript>
</SCRIPT>
 </DIV></DIV><!-- End Of Class topbar --></DIV>
<DIV id=3Dheading>
<H1><A href=3D"http://rubylearning.com/blog/"><U>RubyLearning.com=20
Blog</U></A></H1>
<DIV class=3Ddescription>All about Ruby and Ruby on =
Rails.</DIV></DIV></DIV><!-- end header -->
<DIV id=3Dcontentwrapper>
<DIV id=3Dcontent><BR>
<DIV style=3D"MARGIN: 10px 0px 0px">
<SCRIPT type=3Dtext/javascript><!--
  google_ad_client =3D "pub-2265705826025555";
  google_ad_width =3D 728;
  google_ad_height =3D 90;
  google_ad_format =3D "728x90_as";
  google_ad_type =3D "text_image";
  //2007-06-15: RLBlog
  google_ad_channel =3D "9579799412";
  google_color_border =3D "FFFFFF";
  google_color_bg =3D "FFFFFF";
  google_color_link =3D "0060C0";
  google_color_text =3D "000000";
  google_color_url =3D "0060C0";
  //--></SCRIPT>

<SCRIPT src=3D"" type=3Dtext/javascript>
  </SCRIPT>
</DIV>
<DIV id=3Dblogs><BR><!-- SMT: br/ to br / --><BR>
<DIV class=3Dnavi>
<DIV align=3Dleft>=C2=AB <A=20
href=3D"http://rubylearning.com/blog/2007/10/04/advice-for-ruby-beginners=
-3/">Advice=20
For Ruby Beginners 3</A></DIV>
<DIV align=3Dright><A=20
href=3D"http://rubylearning.com/blog/2007/11/29/ruby-usage-trend-in-india=
n-cities/">Ruby=20
Usage Trend in Indian Cities</A> =C2=BB</DIV></DIV><!-- End Of Class =
Navi --><BR>
<DIV id=3Dpost-83><IMG alt=3D""=20
src=3D"http://rubylearning.com/blog/wp-content/themes/adsmindedwide/image=
s/icon_post.gif">=20

<H1><A title=3D"View Details: =E2=80=9CAkitaOnRails=E2=80=9D On Ruby =
Symbols"=20
href=3D"http://rubylearning.com/blog/2007/11/26/akitaonrails-on-ruby-symb=
ols/"=20
rel=3Dbookmark>=E2=80=9CAkitaOnRails=E2=80=9D On Ruby =
Symbols</A></H1></DIV><!-- End Of Class Title -->
<DIV class=3Darticle>
<DIV>
<P><EM>RubyLearning recently caught with <STRONG>Fabio Akita</STRONG> =
from=20
Brazil and got his viewpoint on one of the vexing areas for beginners in =
Ruby -=20
<STRONG>Symbols</STRONG>.</EM></P>
<P class=3Dblock><IMG class=3Dalignleft title=3D"Fabio Akita" =
alt=3D"Fabio Akita"=20
src=3D"http://www.rubylearning.com/images/akita.jpg"><STRONG>Fabio =
Akita</STRONG>=20
is a Brazilian Rails enthusiast, also known online as =
=E2=80=9CAkitaOnRails=E2=80=9D. He=20
regularly write posts on his own <A =
href=3D"http://www.akitaonrails.com/">blog</A>=20
and had published the very first book tailored for the Brazilian =
audience called=20
=E2=80=9CRepensando a Web com Rails=E2=80=9D. He is now a full-time Ruby =
on Rails developer=20
working as Brazil Rails Practice Manager for the Utah company Surgeworks =

LLC.</P>
<P>Ruby is very similar to many other object oriented languages. You can =
find=20
similar constructs from non-dynamic languages as Java or C#. On the =
other hand,=20
to start grasping all the possibilities of Ruby one has to invest some =
time=20
learning what we call =E2=80=98Rubyisms=E2=80=99. One example is =
something called a=20
*symbol*.</P>
<P>This is more obvious when you start learning Ruby through Rails. Much =
of=20
Rails power comes from the fact that it uses a lot of rubyisms. =
Let=E2=80=99s see one=20
example: (<STRONG>Note</STRONG>: You may want to brush up on <A=20
href=3D"http://rubylearning.com/satishtalim/ruby_symbols.html">Symbols</A=
> and <A=20
href=3D"http://rubylearning.com/satishtalim/ruby_activerecord_and_mysql.h=
tml">ActiveRecord</A>=20
before going through the examples that follow.)</P><PRE><CODE><SPAN =
style=3D"COLOR: blue">class Transact &lt; ActiveRecord::Base
  validates_presence_of :when
  validates_presence_of :category, :account
  validates_presence_of :value
  validates_numericality_of :value

  belongs_to :category
  belongs_to :account
end</SPAN></CODE></PRE>
<P>=E2=80=98class=E2=80=99 we understand, after all, the mainstream =
languages are=20
=E2=80=98object-oriented=E2=80=99. But what are all those colons doing =
through all the code?=20
Those denote Symbols. More important, the colons represent initializers =
of the=20
class <STRONG>Symbol</STRONG>.</P>
<P>This can be quite confusing considering that the normal way of =
initializing=20
an object is:</P><PRE><CODE><SPAN style=3D"COLOR: =
blue">Symbol.new</SPAN></CODE></PRE>
<P>The =E2=80=98<STRONG>new</STRONG>=E2=80=98 call asks for the standard =

=E2=80=98<STRONG>initialize</STRONG>=E2=80=98 method defined within the =
class. Turns out that=20
this method is private, the idea being that all symbols should be =
instantiated=20
with the colon notation.</P>
<P>Symbols are used as identifiers. Some other languages could simply =
use=20
Strings instead of Symbols. In Ruby, it would become something like =
this:</P><PRE><CODE><SPAN style=3D"COLOR: blue">class Transact &lt; =
ActiveRecord::Base
  validates_presence_of "when"
  validates_presence_of "category", "account"
  validates_presence_of "value"
  validates_numericality_of "value"

  belongs_to "category"
  belongs_to "account"
end</SPAN></CODE></PRE>
<P>Not so visually different: we got rid of the colons and went back to =
the=20
comfortable quotation marks. They look the same but behave differently. =
Like=20
Symbols in Ruby, Strings also have a special constructor. Instead of =
doing:</P><PRE><CODE><SPAN style=3D"COLOR: =
blue">String.new("category")</SPAN></CODE></PRE>
<P>We just do:</P><PRE><CODE><SPAN style=3D"COLOR: =
blue">"category"</SPAN></CODE></PRE>
<P>One could call these kind of shortcuts as =
=E2=80=9Ceye-candy=E2=80=9D, but the languages=20
would be pretty harsh without them. We use Strings all the time, and it =
would be=20
extremely painful to instantiate new Strings without this special =
constructor:=20
simply writing it between quotation marks.</P>
<P>The problem is, as Strings are easy to write, we overuse them more =
often than=20
not. There is an important side-effect: each new construct instantiates =
a brand=20
new object in memory, even though they have the same content. For =
instance:</P><PRE><CODE><SPAN style=3D"COLOR: blue">&gt;&gt; =
"category".object_id
=3D&gt; 2953810

&gt;&gt; "category".object_id
=3D&gt; 2951340</SPAN></CODE></PRE>
<P>Here, we instantiate two strings with the same content. Each object =
in memory=20
has a unique ID so each string created above uses a separate memory slot =
and=20
have separate IDs. Now imagine that the same string shows up in hundreds =
of=20
different places throughout your project. You=E2=80=99re definitely =
using more memory=20
than necessary.</P>
<P>But, this is not a new problem. For that, we have another construct =
in most=20
languages called =E2=80=98constants=E2=80=99, Ruby included. We have to =
conscientiously plan and=20
pre-define several constants beforehand. So, that=E2=80=99s how our =
previous example=20
would be using memory efficient constants:</P><PRE><CODE><SPAN =
style=3D"COLOR: blue">class Transact &lt; ActiveRecord::Base
  ACCOUNT =3D "account"
  CATEGORY =3D "category"
  VALUE =3D "value"
  WHEN =3D "when"

  validates_presence_of WHEN
  validates_presence_of CATEGORY, ACCOUNT
  validates_presence_of VALUE
  validates_numericality_of VALUE

  belongs_to CATEGORY
  belongs_to ACCOUNT
end</SPAN></CODE></PRE>
<P>This works, but this is not nearly as nice. First of all, you have to =

pre-define everything beforehand, either in the same class or a =
separated module=20
just for constants. Second, the code is less elegant, less readable, =
thus, less=20
maintainable.</P>
<P>So, we get back to the purpose of Symbols: being as memory efficient =
as=20
constants but as easy to the eyes as full fledged strings. Quotation =
mark=20
notation is already taken for Strings, capitalized words for constants, =
dollar=20
sign for global variables and so on. So, colon was a good candidate.</P>
<P>Let=E2=80=99s see what it all means:</P><PRE><CODE><SPAN =
style=3D"COLOR: blue">&gt;&gt; "string".object_id
=3D&gt; 3001850
&gt;&gt; "string".object_id
=3D&gt; 2999540

&gt;&gt; :string.object_id
=3D&gt; 69618
&gt;&gt; :string.object_id
=3D&gt; 69618</SPAN></CODE></PRE>
<P>As we explained before, the first two strings have the same content =
and look=20
similar, but they do occupy different memory slots, allowing for =
unnecessary=20
duplication.</P>
<P>The last two symbols both are exactly the same thing. So I can call=20
identifiers as symbols through all my code without worrying about =
duplication in=20
memory. They are easy to initialize and easy to manage.</P>
<P>We can also transform a String into a Symbol and =
vice-versa:</P><PRE><CODE><SPAN style=3D"COLOR: blue">&gt;&gt; =
"string".to_sym
=3D&gt; :string
&gt;&gt; :symbol.to_s
=3D&gt; "symbol"</SPAN></CODE></PRE>
<P>One good place where this is put to good use is within Rails=E2=80=99 =

<STRONG>ActiveSupport</STRONG>. This package was made to extend the Ruby =

language, and one such extension was made to the ubiquitous=20
<STRONG>Hash</STRONG> class. Let=E2=80=99s see an =
example:</P><PRE><CODE><SPAN style=3D"COLOR: blue">&gt;&gt; params =3D { =
"id" =3D&gt; 1, "action" =3D&gt; "show" }
=3D&gt; {"action"=3D&gt;"show", "id"=3D&gt;1}

&gt;&gt; params["id"]
=3D&gt; 1

&gt;&gt; params.symbolize_keys!
=3D&gt; {:id=3D&gt;1, :action=3D&gt;"show"}

&gt;&gt; params[:id]
=3D&gt; 1</SPAN></CODE></PRE>
<P>The first statement instantiates and populates a =
<STRONG>Hash</STRONG> (yet=20
another special initialization notation). The second statement asks for =
the=20
value identified by the key =E2=80=9Cid=E2=80=9D, which is a string.</P>
<P>Instead of doing it this way, we can call the=20
<STRONG>symbolize_keys!</STRONG> to transform all string keys into =
symbol keys.=20
Now in the last statement we can use the more usual Rails notation as =
symbol=20
keys within a Hash. When Rails receives a HTML Form post request, it =
only gets=20
strings, so it is its job to convert everything into meaningful Rails =
objects.=20
If you=E2=80=99ve been in the Rails world, you already saw this usage =
with=20
controllers.</P>
<P>So, this is all to be said about Symbols: very simple constructs that =
makes=20
code more readable and more efficient at the same time, which is =
compatible with=20
the Ruby Way.</P>
<P><EM>Thank you Fabio for showing us a different perspective on =
Symbols. In=20
case you have any queries, questions on this article, kindly post your =
questions=20
here and Fabio would be glad to answer.</EM></P></DIV>
<P>Technorati Tags: <A href=3D"http://technorati.com/tag/Brazil"=20
rel=3Dtag>Brazil</A>, <A href=3D"http://technorati.com/tag/Fabio+Akita"=20
rel=3Dtag>Fabio Akita</A>, <A =
href=3D"http://technorati.com/tag/Ruby+Programming"=20
rel=3Dtag>Ruby Programming</A>, <A =
href=3D"http://technorati.com/tag/Ruby+Symbols"=20
rel=3Dtag>Ruby Symbols</A></P>Posted by <B>Satish Talim</B> =
<BR></DIV><!-- End Of Class Article --><BR>
<DIV class=3D"postmetadata alt">&nbsp; &nbsp;Posted in <A=20
title=3D"View all posts in Ruby"=20
href=3D"http://rubylearning.com/blog/category/ruby/" rel=3D"category =
tag">Ruby</A>,=20
<A title=3D"View all posts in Code Snippets"=20
href=3D"http://rubylearning.com/blog/category/ruby/code-snippets/"=20
rel=3D"category tag">Code Snippets</A>, <A title=3D"View all posts in =
Tricks"=20
href=3D"http://rubylearning.com/blog/category/ruby/tricks/"=20
rel=3D"category tag">Tricks</A>, <A title=3D"View all posts in Training" =

href=3D"http://rubylearning.com/blog/category/ruby/training/"=20
rel=3D"category tag">Training</A> &nbsp; &nbsp; </DIV><!-- End Of Class =
Meta -->
<DIV class=3Dpreviouspost>
<SCRIPT type=3Dtext/javascript><!--
google_ad_client =3D "pub-2265705826025555";
google_alternate_ad_url =3D "";
google_ad_width =3D 336;
google_ad_height =3D 280;
google_ad_format =3D "336x280_as";
google_ad_type =3D "text_image";
google_ad_channel =3D"9579799412";
google_color_border =3D "FFFFFF";
google_color_bg =3D "FFFFFF";
google_color_link =3D "0060C0";
google_color_url =3D "0060C0";
google_color_text =3D "000000";
//--></SCRIPT>

<SCRIPT src=3D"" type=3Dtext/javascript>
</SCRIPT>
</DIV><!-- End Of Class previouspost --><!--
        <rdf:RDF =
xmlns:rdf=3D"http://www.w3.org/1999/02/22-rdf-syntax-ns#" =0A=
	    xmlns:dc=3D"http://purl.org/dc/elements/1.1/"=0A=
	    =
xmlns:trackback=3D"http://madskills.com/public/xml/rss/module/trackback/"=
>=0A=
		<rdf:Description =
rdf:about=3D"http://rubylearning.com/blog/2007/11/26/akitaonrails-on-ruby=
-symbols/"=0A=
    =
dc:identifier=3D"http://rubylearning.com/blog/2007/11/26/akitaonrails-on-=
ruby-symbols/"=0A=
    dc:title=3D"&#8220;AkitaOnRails&#8221; On Ruby Symbols"=0A=
    =
trackback:ping=3D"http://rubylearning.com/blog/2007/11/26/akitaonrails-on=
-ruby-symbols/trackback/" />=0A=
</rdf:RDF>        -->
<P class=3D"postmetadata alt">Subscribe <B><A=20
href=3D"http://rubylearning.com/blog/2007/11/26/akitaonrails-on-ruby-symb=
ols/feed/">RSS=20
2.0</A></B> feed. <A=20
href=3D"http://rubylearning.com/blog/2007/11/26/akitaonrails-on-ruby-symb=
ols/#respond"><B>Leave=20
a response</B></A>, or <A=20
href=3D"http://rubylearning.com/blog/2007/11/26/akitaonrails-on-ruby-symb=
ols/trackback/"><B>Trackback</B></A>=20
from your own site. </P><BR>
<DIV class=3Dpreviouspost>
<H3>Best Deal Ads :</H3>
<DIV align=3Dcenter>
<SCRIPT type=3Dtext/javascript><!--
ch_client =3D "IndianGuru";
ch_type =3D "mpu";
ch_width =3D 468;
ch_height =3D 180;
ch_color_border =3D "#000000";
ch_color_bg =3D "#FFFFFF";
ch_color_title =3D "#0060C0";
ch_color_text =3D "#000000";
ch_non_contextual =3D 1;
ch_nosearch =3D 1 ;
var ch_queries =3D new Array( );
var ch_selected=3DMath.floor((Math.random()*ch_queries.length));
if ( ch_selected < ch_queries.length ) {
ch_query =3D ch_queries[ch_selected];
}
//--></SCRIPT>

<SCRIPT src=3D"http://scripts.chitika.net/eminimalls/mm.js" =
type=3Dtext/javascript>
</SCRIPT>
</DIV></DIV><!-- End Of Class previouspost --><BR><BR><BR><!-- You can =
start editing here. --><!-- If comments are open, but there are no =
comments. --><BR>
<H3 id=3Drespond>Leave a Reply</H3>
<FORM id=3Dcommentform onsubmit=3D"return testValues(this)"=20
action=3Dhttp://rubylearning.com/blog/wp-comments-post.php =
method=3Dpost>
<P><INPUT class=3Dstyled id=3Dauthor tabIndex=3D1 size=3D22 =
name=3Dauthor> <INPUT=20
type=3Dhidden value=3D83 name=3Dcomment_post_ID> <LABEL=20
for=3Dauthor><SMALL>Name</SMALL></LABEL></P>
<P><INPUT id=3Demail tabIndex=3D2 size=3D22 name=3Demail> <LABEL =
for=3Demail><SMALL>Email=20
(will not be published)</SMALL></LABEL></P>
<P><INPUT id=3Durl tabIndex=3D3 size=3D22 name=3Durl> <LABEL=20
for=3Durl><SMALL>Website</SMALL></LABEL></P><!--<p><small><strong>XHTML:<=
/strong> You can use these tags: &lt;a href=3D&quot;&quot; =
title=3D&quot;&quot;&gt; &lt;abbr title=3D&quot;&quot;&gt; &lt;acronym =
title=3D&quot;&quot;&gt; &lt;b&gt; &lt;blockquote =
cite=3D&quot;&quot;&gt; &lt;code&gt; &lt;em&gt; &lt;i&gt; &lt;strike&gt; =
&lt;strong&gt; </small></p>-->
<P>
<SCRIPT type=3Dtext/javascript>edToolbar();</SCRIPT>
<TEXTAREA id=3Dcomment tabIndex=3D4 name=3Dcomment rows=3D7 =
cols=3D55></TEXTAREA>
<SCRIPT=20
type=3Dtext/javascript>var edCanvas =3D =
document.getElementById('comment');</SCRIPT>
</P>
<P class=3Dcommentbutton><INPUT id=3Dsubmit tabIndex=3D5 type=3Dsubmit =
value=3D"Submit Comment" name=3Dsubmit></P></FORM><!-- start bottom blog =
nav -->
<DIV align=3Dcenter><SPAN class=3Dmenu></SPAN><SPAN =
class=3Dmenu></SPAN></DIV></DIV><!-- end blogs -->
<DIV id=3Dcenterbar>
<DIV align=3Dcenter>
<SCRIPT=20
src=3D"http://learningruby.jobcoin.com/jobs/show_embedded_vertical?styles=
[mouseover_color]=3D000000&amp;styles[hover_color]=3DFFFFFF&amp;styles[ba=
ckground]=3DFFFFFF&amp;styles[num_jobs]=3D6&amp;styles[border_type]=3DSol=
id&amp;styles[title_color]=3DE50066&amp;styles[color]=3DE50066&amp;styles=
[border_color]=3D000000&amp;styles[width]=3D160&amp;styles[hover_backgrou=
nd]=3D000000&amp;referring_site_id=3D&amp;filter=3D"=20
type=3Dtext/javascript>
</SCRIPT>
<BR><BR><!--
<strong>Sign up now!<br />
Get paid instantly!</strong><br />
<img src=3D"http://rubylearning.com/images/arrowdown.gif" =
style=3D'border:0px;' alt=3D"Now!" /><img =
src=3D"http://rubylearning.com/images/arrowdown.gif" =
style=3D'border:0px;' alt=3D"Now!" /><br />
<a href=3D"http://www.text-link-ads.com/?ref=3D36578"><img =
src=3D"http://www.text-link-ads.com/images/text_link_ads_E_120x600.gif" =
style=3D'border:0px;' alt=3D"Text Link Ads" /></a>
<br /><br />

<a href=3D"http://www.dreamhost.com/r.cgi?318057"><img =
src=3D"http://rubylearning.com/images/dreamhost.gif" =
style=3D'border:0px;' alt=3D"DreamHost" /></a>
<br /><br />

<a href=3D"http://www.railsconfeurope.com/" title=3D"New! RailsConf =
Europe"><img =
src=3D"http://ug.oreilly.com/banners/railsconf/eu/120x60.jpg" =
alt=3D"Ruby on Rails: RailsConf Europe" style=3D"border:0" /></a>
<br /><br />

<a href=3D"http://conference.indicthreads.com/"><img
src=3D"http://conference.indicthreads.com/images/java-pune-india-07/java-=
training-conference-120-600(3).jpg"
alt=3D"IndicThreads Conference On Java Technology" width=3D"120"
height=3D"600" style=3D'border:0px;' /></a>
<br /><br />

<a href=3D"http://apress.com/userGroups/index.html"><img =
src=3D"http://apress.com/tradesite/pic/Apress_120x90.gif" =
style=3D'border:0px;' alt=3D"Apress Ruby Rails books" /></a>
--></DIV></DIV><!-- End Of Class centerbar -->
<DIV id=3Dsidebar><!-- Author --><!-- resources --><BR>
<DIV class=3Dblocktitle>Resources</DIV>
<DIV class=3Dblock>
<DIV class=3Dmenu><U><B>Subscribe</B></U> <A title=3Drss=20
href=3D"http://rubylearning.com/blog/feed/" target=3D_new><IMG alt=3Drss =

src=3D"http://rubylearning.com/blog/wp-content/themes/adsmindedwide/image=
s/icon_rss.gif"></A>=20

<DIV class=3Dnolilink>
<UL>
  <LI><A href=3D"http://feeds.feedburner.com/LearningRubyBlog"=20
  type=3Dapplication/rss+xml rel=3Dalternate><IMG=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3D"Subscribe to Ruby Learning Blog Feed"=20
  =
src=3D"http://www.feedburner.com/fb/images/pub/feed-icon16x16.png"></A>&n=
bsp;<A=20
  href=3D"http://feeds.feedburner.com/LearningRubyBlog" =
type=3Dapplication/rss+xml=20
  rel=3Dalternate>Subscribe to Blog Feed</A>=20
  <LI><A href=3D"http://rubylearning.com/blog/comments/feed/" =
target=3D_new>Comments=20
  RSS 2.0</A> <!--
                        <li><a =
href=3D"http://rubylearning.com/blog/feed/" target=3D"_new">RSS =
2.0</a></li>
                        <li><a =
href=3D"http://rubylearning.com/blog/feed/rss/" target=3D"_new">RSS =
0.92</a></li>
                        <li><a =
href=3D"http://rubylearning.com/blog/feed/atom/" target=3D"_new">Atom =
0.3</a></li>
                        --></LI></UL></DIV><BR><U><B>Pages</B></U>=20
<DIV><IMG height=3D5 alt=3D+=20
src=3D"http://rubylearning.com/blog/wp-content/themes/adsmindedwide/image=
s/blank.gif"=20
width=3D1></DIV>
<UL>
  <LI class=3Dpage_item><A title=3DAbout=20
  href=3D"http://rubylearning.com/blog/about/">About</A>=20
  <LI class=3Dpage_item><A title=3DContact=20
  href=3D"http://rubylearning.com/blog/contact/">Contact</A>=20
</LI></UL><BR><U><B>Admin</B></U>=20
<DIV><IMG height=3D5 alt=3D+=20
src=3D"http://rubylearning.com/blog/wp-content/themes/adsmindedwide/image=
s/blank.gif"=20
width=3D1></DIV>
<UL>
  <LI><A title=3DAdmin =
href=3D"http://rubylearning.com/blog/wp-admin/">Admin</A>=20
  <LI><A href=3D"http://rubylearning.com/blog/wp-login.php">Login</A>=20
</LI></UL></DIV></DIV><!-- categories --><BR>
<DIV class=3Dblocktitle>Blog Categories</DIV>
<DIV class=3Dblock>
<DIV class=3Dmenu>
<UL class=3Dslightbigger>
  <LI><A title=3D"View all posts filed under Interview"=20
  =
href=3D"http://rubylearning.com/blog/category/interview/">Interview</A> =
(6)=20
  <LI><A title=3D"View all posts filed under Jobs"=20
  href=3D"http://rubylearning.com/blog/category/jobs/">Jobs</A> (1)=20
  <LI><A title=3D"View all posts filed under Ruby"=20
  href=3D"http://rubylearning.com/blog/category/ruby/">Ruby</A> (72)=20
  <UL class=3Dchildren>
    <LI><A title=3D"View all posts filed under Code Snippets"=20
    =
href=3D"http://rubylearning.com/blog/category/ruby/code-snippets/">Code=20
    Snippets</A> (6)=20
    <LI><A title=3D"View all posts filed under Humor"=20
    href=3D"http://rubylearning.com/blog/category/ruby/humor/">Humor</A> =
(1)=20
    <LI><A title=3D"View all posts filed under JRuby"=20
    href=3D"http://rubylearning.com/blog/category/ruby/jruby/">JRuby</A> =
(5)=20
    <LI><A title=3D"View all posts filed under News"=20
    href=3D"http://rubylearning.com/blog/category/ruby/news/">News</A> =
(30)=20
    <LI><A title=3D"View all posts filed under Rails"=20
    href=3D"http://rubylearning.com/blog/category/ruby/rails/">Rails</A> =
(49)=20
    <LI><A title=3D"View all posts filed under Training"=20
    =
href=3D"http://rubylearning.com/blog/category/ruby/training/">Training</A=
> (7)=20

    <LI><A title=3D"View all posts filed under Tricks"=20
    =
href=3D"http://rubylearning.com/blog/category/ruby/tricks/">Tricks</A> =
(4)=20
    </LI></UL></LI></UL></DIV></DIV><!-- monthly archives --><BR>
<DIV class=3Dblocktitle>Monthly Archives</DIV>
<DIV class=3Dblock>
<DIV class=3Dmenu><U><B>By Month</B></U>=20
<DIV><IMG height=3D5 alt=3D""=20
src=3D"http://rubylearning.com/blog/wp-content/themes/adsmindedwide/image=
s/blank.gif"=20
width=3D1></DIV>
<UL>
  <LI><A title=3D"November 2007"=20
  href=3D"http://rubylearning.com/blog/2007/11/">November =
2007</A>&nbsp;(2)=20
  <LI><A title=3D"October 2007"=20
  href=3D"http://rubylearning.com/blog/2007/10/">October =
2007</A>&nbsp;(3)=20
  <LI><A title=3D"September 2007"=20
  href=3D"http://rubylearning.com/blog/2007/09/">September =
2007</A>&nbsp;(5)=20
  <LI><A title=3D"August 2007" =
href=3D"http://rubylearning.com/blog/2007/08/">August=20
  2007</A>&nbsp;(8)=20
  <LI><A title=3D"July 2007" =
href=3D"http://rubylearning.com/blog/2007/07/">July=20
  2007</A>&nbsp;(5)=20
  <LI><A title=3D"June 2007" =
href=3D"http://rubylearning.com/blog/2007/06/">June=20
  2007</A>&nbsp;(5)=20
  <LI><A title=3D"May 2007" =
href=3D"http://rubylearning.com/blog/2007/05/">May=20
  2007</A>&nbsp;(8)=20
  <LI><A title=3D"April 2007" =
href=3D"http://rubylearning.com/blog/2007/04/">April=20
  2007</A>&nbsp;(13)=20
  <LI><A title=3D"March 2007" =
href=3D"http://rubylearning.com/blog/2007/03/">March=20
  2007</A>&nbsp;(3)=20
  <LI><A title=3D"February 2007"=20
  href=3D"http://rubylearning.com/blog/2007/02/">February =
2007</A>&nbsp;(14)=20
  <LI><A title=3D"January 2007"=20
  href=3D"http://rubylearning.com/blog/2007/01/">January =
2007</A>&nbsp;(10)=20
</LI></UL></DIV></DIV><!-- Recent Comments --><BR>
<DIV class=3Dblocktitle>Recent Comments:</DIV>
<DIV class=3Dblock>
<DIV class=3Dmenu>
<UL>
  <LI><A title=3D"Rails Developers in India, I'd Recommend, May 2, 2007" =

  =
href=3D"http://rubylearning.com/blog/2007/05/02/rails-developers-in-india=
-id-recommend/#comment-22827">Surendra=20
  Singhi</A>: "They are probably the only Indian company to have =
released Rails=20
  plugins." I released a rails...=20
  <LI><A title=3D"Ruby on Rails in India, April 24, 2007"=20
  =
href=3D"http://rubylearning.com/blog/2007/04/24/ruby-on-rails-in-india/#c=
omment-21910">Mukesh=20
  Yadav</A>: hi, i have offer from two companies one working in RoR and =
other=20
  one in .NET, they are appointing me as...=20
  <LI><A title=3D"Rails Developers in India, I'd Recommend, May 2, 2007" =

  =
href=3D"http://rubylearning.com/blog/2007/05/02/rails-developers-in-india=
-id-recommend/#comment-20923">Nyros=20
  Technologies</A>: Nyors Technologies has a dedicated Ruby on Rails =
Development=20
  team in India. Our development also...=20
  <LI><A title=3D"Ruby Quirks, April 11, 2007"=20
  =
href=3D"http://rubylearning.com/blog/2007/04/11/ruby-quirks/#comment-1889=
0">Dale=20
  Thatcher</A>: Slight reformat of the solution in comment 9. expand =3D =
true if=20
  expand.nil? As long as you're happy to...=20
  <LI><A title=3D"Rails Hosting In India, September 15, 2007"=20
  =
href=3D"http://rubylearning.com/blog/2007/09/15/rails-hosting-in-india/#c=
omment-18006">Team=20
  Rekonsult</A>: We offer real Ruby on rails with apache hosting. Check =
out=20
  http://hosting.rekonsult.com <!-- <li>	<li><a =
href=3D"http://rubylearning.com/blog/2007/05/02/rails-developers-in-india=
-id-recommend/#comment-22827" title=3D"Rails Developers in India, I'd =
Recommend, May 2, 2007">Surendra Singhi</a>: "They are probably the only =
Indian company to have released Rails plugins." I released a =
rails...</li>=0A=
	<li><a =
href=3D"http://rubylearning.com/blog/2007/04/24/ruby-on-rails-in-india/#c=
omment-21910" title=3D"Ruby on Rails in India, April 24, 2007">Mukesh =
Yadav</a>: hi, i have offer from two companies one working in RoR and =
other one in .NET, they are appointing me as...</li>=0A=
	<li><a =
href=3D"http://rubylearning.com/blog/2007/05/02/rails-developers-in-india=
-id-recommend/#comment-20923" title=3D"Rails Developers in India, I'd =
Recommend, May 2, 2007">Nyros Technologies</a>: Nyors Technologies has a =
dedicated Ruby on Rails Development team in India. Our development =
also...</li>=0A=
	<li><a =
href=3D"http://rubylearning.com/blog/2007/04/11/ruby-quirks/#comment-1889=
0" title=3D"Ruby Quirks, April 11, 2007">Dale Thatcher</a>: Slight =
reformat of the solution in comment 9. expand =3D true if expand.nil? As =
long as you're happy to...</li>=0A=
	<li><a =
href=3D"http://rubylearning.com/blog/2007/09/15/rails-hosting-in-india/#c=
omment-18006" title=3D"Rails Hosting In India, September 15, 2007">Team =
Rekonsult</a>: We offer real Ruby on rails with apache hosting. Check =
out http://hosting.rekonsult.com</li>=0A=
</li>  --></LI></UL></DIV></DIV><!-- Recent Trackbacks --><BR>
<DIV class=3Dblocktitle>Recent Trackbacks:</DIV>
<DIV class=3Dblock>
<DIV class=3Dmenu>
<UL>
  <LI><!-- <li><li></li></li> --></LI></UL></DIV></DIV><!-- Links =
--></DIV><!-- End Of Class sidebar --></DIV><!-- end content =
--></DIV><!-- end contentwrapper -->
<DIV id=3Dfooter><!-- footer buttons -->
<DIV id=3Dfooterbuttons><A title=3D"Subscribe RSS 2.0"=20
href=3D"http://rubylearning.com/blog/feed/" target=3D_new><IMG=20
alt=3D"Subscribe RSS 2.0"=20
src=3D"http://rubylearning.com/blog/wp-content/themes/adsmindedwide/image=
s/button_rss.gif">=20
</A><A title=3D"Valid W3C CSS"=20
href=3D"http://jigsaw.w3.org/css-validator/check/referer" =
target=3D_new><IMG=20
alt=3D"Valid W3C CSS"=20
src=3D"http://rubylearning.com/blog/wp-content/themes/adsmindedwide/image=
s/css.png"></A>=20
<BR><!-- SMT: br/ to br / --><A=20
href=3D"http://rubylearning.com/blog/wp-commentsrss2.php" =
target=3D_blank><IMG=20
title=3D"RSS Comments" alt=3D"RSS Comments"=20
src=3D"http://rubylearning.com/blog/wp-content/themes/adsmindedwide/image=
s/rssComments.png"=20
border=3D0></A> <A title=3D"Valid W3C XHTML 1.0"=20
href=3D"http://validator.w3.org/check/referer" target=3D_new><IMG=20
alt=3D"Valid W3C XHTML 1.0"=20
src=3D"http://rubylearning.com/blog/wp-content/themes/adsmindedwide/image=
s/button_xhtml.gif"></A>=20
</DIV><!-- copyright -->
<DIV style=3D"MARGIN-LEFT: 18px">Copyright =C2=A9 2007 <A =
title=3D"RubyLearning.com Blog"=20
href=3D"http://rubylearning.com/blog">RubyLearning.com =
Blog</A>.<BR>Powered by <A=20
title=3D"state-of-the-art semantic personal publishing platform"=20
href=3D"http://www.wordpress.org/" target=3D_new>WordPress</A> &amp; by =
<A=20
title=3D"Hi Tech" href=3D"http://www.sapiensbryan.com/" =
target=3D_blank>Hi Tech=20
Blog</A>. All Rights Reserved. <!-- ?php echo $wpdb->num_queries; ?> =
queries. 2.168 seconds. --></DIV></DIV></DIV><!-- end wrapper --><!-- =
103bees.com 'bee' code v1.11 - please do not make any changes! -->
<SCRIPT src=3D"http://103bees.com/bees/?bee=3D5671&amp;fid=3D8192"=20
type=3Dtext/javascript></SCRIPT>
<!-- 103bees.com 'bee' code --><!-- Added SMT: HitTail and GA -->
<SCRIPT src=3D"http://13043.hittail.com/mlt.js" =
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.google-analytics.com/urchin.js" =
type=3Dtext/javascript>
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
_uacct =3D "UA-59044-10";
urchinTracker();
</SCRIPT>
</BODY></HTML>

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://ug.oreilly.com/banners/toc/120x60.gif

[encoded data, 4484 characters]
dNiIFvGIkDiEkjiJlDhqELGJnNiJnviJChEQADs=

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://files.adbrite.com/mb/images/120x60-1-blue.gif

R0lGODlheAA8ANUAAPvZS9K9ZabF2fHx8f9oZ/3ojP+Ghf3xyv8eHgtktvX19dfFdv9HR/+2tABV
pABardHJquLi4v3gburq6gBetH2t2UaJyfztqxVpuO3t7dra2t7e3tDFl//W0AZhtujGOqCwp/3M
bfvWOuXl5f/z5Mi7i9Tk8/jSlufn5wBSndvb28vU3PnOGtzBUv+kmNfWvv/Nt8jLyO7JK/HNNfj4
+ABXqPn5+fz8/P39/fv7+/r6+v7+/v8AAAAAAJmZmf///yH5BAAAAAAALAAAAAB4ADwAAAb/QJ9w
SCwaj8ikcslsOp8+jHQ6tVmv2Kx2y+16v+BwVkfWYRLohGdNEVLf4rh8TheXdblcWs1uR99Td4KD
hIWGh4iJiol5emhrHhSSboBSi5eYmZqXjTc3j32Tf5VljaanqKmqq6ytrq+onp+QkpIPlJWwuru8
vbueODi0tQ+3o4CmssrLzM3Oz9DR0tPLwcK1tsW4VGg50z3L4NTO4uLj5+PBOzvYFMUPNbh7aNXW
9jg9Pdb59/3+9/r+CRxIsCCOdeyIFasRz8e8PcAI8gs2EV9FfRUtBsyHUeNEjgD3UbwoEp/Jf+t+
/FC4sOHDNP0QytzRg6bNmjbX4cyns6fP/50ygfocWhNnTqM7jc5EqBJHtpYOhLxEY23pzKI3iWrN
eXRoV69ZuQr9ajXlDxw53L1jWCOqw4drDpYNmnWsXZ0chSJFmFdp2L1iwc5smkPHO3gMHbidB8mD
TJWQI//oMbky5coqL1/GvBmy5syRO0um/Bk0Zs6SU+O4oYPG2sSKpe5pzDR1aNOlUeP2vPv0adG/
eQf3nXoHDh02XLdsG/stKEhmbQvPzVH473yeSU/Omxl76s7Vs3sHHnl1a+WImS9O09jxDunw48uf
T594ffjmaaBnq3j98zXR3SfggPORR2B5rOn3mnqy/efegRBGKKF8+e0Hm398QPfehPDlRv9gaQZC
WOGC/TWYIYAbchhfiPd5yOGIy5Xo3IkPqrjdZqSN5511OFqGXY4qwpiejLPRluKEPeqWpGnBgeji
gULy11yRGtoIHIjWgaYdlsNJGOWFJrYXIJI7Ohkeb1v2tmSEXzI4o5hHWqlmh5YpySSL9bVJJHtG
yjlnlzxOd+eLCVroJpUo2njjdJrteNug2wEqYqEkTslnlYpmqql0elrq4JibhqpopxjCKeqpmZIa
Zp+otjqhqm+yamMOA6AwQgS44jpCBjqodEOtueKKwgA5uIrgeZWWKuurA6iwQAsfRCvtBwtEkEEG
EXAwrbQLbKBAnKfCimiNzEIwwwIgWKD/rroVFBDAu+/K0AAD9NJLQAgzaGADZDpksIEKGwQ77A2v
UhqjpzSCeuAAEAAgQDuSVCBCCQCA4AMIFxDAw8YcIxBCABmopEMEAYgAgAzbnkBDwcgerCymEt6w
wQwPQ0xBBB+08ELEJCDA8c8NfBDDBhus0EIIDCDgwgkGGNCABBAMwLKCLq8Kc4QDcCABBhH/UIEk
FhTAgghfU2CCCxx30ADHDbDwgQwifCCCxjwYQHcHbq8QwQjEQmnwkAibKuEOI7QQQy0HbB2xAOpy
jcEBdCNwgQEbIzBvvQZIoDG9HDNAgtvRLjBCrwOKe2miEurwgggWgC3BzhG3U8EBPtdd/0DtBDDw
Mw8kNL12xwe4kDsBErQwAbgU/i3ly6hjvUABXFMgAABlq0sBBq1TsAIMHOfO9sZJ86D0xgbozgMB
DdC9MQEivECwgKZ/ivx9hH9QMwUZKE5B2RW0/rj6QENb3danOwT8oIAH4B4PzMcAAECgWPBTHphi
dTUCqY51ksBe9vYniRWAjXa7I5/GDKgSEqzPhOcrAN3o5gIRaAAHpZPgoU5Hrh/MZS4DeF702oG9
69VMAArkQQd6Rj6fEU8GLBBgA5R4u90doAUjuGFZ8qOAZDWoPY6BjHEMYg+Z2a8W1ovd9fxHgshd
4ATd21gDRACCuYnvBytUIAF8V4AFDP+Ai11EDg2qCDhLtUcSNgyGLxTQsOxZgAQjqMX9wEbE80mA
cuKj2xMD0EQGZAx8kGRh+xTACzLoRwED6GNz/lgL8+hRP6hMpSpROYIAXKAWFaBeBr1mgQrY0gRB
7MAJcNc0F0igBB8QYAt75zRIVu4AH9jAKpe5TAWAcgDLk9EwsHFKZ1rzmtjEpgZkcL8ISCB7FZBA
AQ5QgHIWwJg/Q0AHzMlGEbiAXsicgTgLQIJ6EYAEIuDABLLJT34O4J8ZUE9/UpACIYQCG5905j8X
ytCGLjQDhQTbBWAnvRnAqwQBkEDt0tkBCQSgBBzgQEYPQNJfxoADGBXBBUhagIlFwKH/MI3pAK41
gf4MlKAGhVgxFCrTnm7AlbaswAoAMIGgXqAFeouA0SbXtKY2gAQACIAGRoCCCEAAXu/SwAQmMAIN
XPVdC4iBtXpKVprW1KYExakP2nGYh17rrXCNK1y3ac5yiqCuAODArjJA17oWQAJxK4FWaTqCf6lA
BRFAAVwLe9jEyvWxkDUrClBw07QWdK0sKcZMzbrVznr2s1vdAEpLQNrSlpYDGkBBaEdr2hLEQG+q
Ba1sZ0vb2nZ2siMYgQMsa1khZJYhGbjtZIdL3OIO91ZES65yA0ZV3EZgucw1rnSnS93qSje3uOJt
bzG7oBpMALe5Da94x0ve8pr3vOhNcq9614vdXGk3rb6tlK3aG6z62ve++M2vfvfL3/7aN7nvVetr
bHqrYEH3wAhOsIIXzOAGO5hohw3wZaFiU1w9+MIYzrCGEXxYDXhYwkJADFpTkNwOe/jEKE6xilfM
4ha7+MUwjjGKQQyFGtv4xjjOcRKCAAA7

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://rubylearning.com/blog/wp-content/themes/adsmindedwide/images/icon_post.gif

R0lGODlhDAAMAJECAPX19QBmzP///wAAACH5BAEAAAIALAAAAAAMAAwAAAInlI8IEu1xVgDLQEMh
tdaxfU3IBGjQ05ScsKgqg8FsGFcvSeU3+ggFADs=

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.rubylearning.com/images/akita.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJm
cG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbG
xsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wAARCABWAE0DASIA
AhEBAxEB/8QAGgAAAgMBAQAAAAAAAAAAAAAAAAUBAwQGAv/EAC4QAAICAQMDAgQFBQAAAAAAAAEC
AAMRBAUhEjFBE1EiQmFxBhQyscEVM1KR0f/EABcBAAMBAAAAAAAAAAAAAAAAAAACAwH/xAAcEQEA
AgMBAQEAAAAAAAAAAAAAAQIRITFBEzL/2gAMAwEAAhEDEQA/AOghCEAIv127UaNug5sf/FfE97pq
xo9I1g/UeF+857S0eufVuy2T58zJnBq1y1f1/Us+UoUr7Syjf2VyNTTgeOnxLVqUAAcfTGJVfQlq
4YZHviT+h/mc6XV06pOqlw3uPIl846p7NBrAVJwT39xOtps9SpW9xKwnOpwshCEGCEIQBD+JiT+X
Xxk/xKK60WsGy0oBwFTuJv3tRaa0IHw4bP3M916dCMkDPnMS07UrqMqacIVVHLhhn4xyJTc1TKGs
e0E/Kg4E2AAXEHjnA4kVorswHbORxFaTa+rFQZSXUdie4nS6AEaKrPcqCYv1mnDUlD2J8RjpH69O
h9hjj6R6lvHq+EIRiCEJEAXbquXVj26DzJR2CDB7ibNRULqXrbsVxn2irS3KydBYeonwnH0k7a2e
s6wsDMXJVWz5bgSULi3lD9+JYjDPeFjDIOeIGebs9GT3yBibNGhTSopGOJkoxfeAvKock/sIxHab
Utp8TCEI5BIMXa/eKNGxTl7B3A8RJqd81d/CMKl9l7/7gDLfdeUP5etscZcj9oq21PVtcH27iY2t
ZySxJJ8mMdoTCs/1i3nRqdbq67iOHJk+i54dziXg4OV4zIY8EmRji3rIusG37gAf7Trhv+x8jq6B
lIYHkETld2BxW57nMr2/dL9E2Aeuvyp/iWpxG/XYwi7SbxpdTgdfpuflaMM58xiuDssa2xnc5Zjk
meIQgBGO039FxrP6XEXT3U/p2K4GcHOJk8bGpdP1KO7AD7zyz5GK16vqeBIqNdta2KBhhmV63Urp
qc/MeFEljxXPpPuVjNqSpbPTxMkliWYse5kSsaSkCb9Nu2q09fQtmV8dQziYITWCEIQAhCEIBttF
7dL1HsORMe4XG7UsT2BwBCEWP0eeMsIQjEEIQgH/2Q==

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://rubylearning.com/blog/wp-content/themes/adsmindedwide/images/icon_rss.gif

R0lGODlhFgALAIAAAP////9mACH5BAAAAAAALAAAAAAWAAsAAAImhI+pFu0PIYs0zvNw03f7LAHb
NGZiGYgnyHbpuGrpWtVkXS26XgAAOw==

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.feedburner.com/fb/images/pub/feed-icon16x16.png

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKOSURBVHjadJNNSFRRGIbfc+6dO6OOOplD
ykSZaRCtnKRc+ANRUBFEm0gicxG0bGoVhERRYIvIjRAtW+UmW5QQQS6qRWQSWJRaUcjkT0LiVWfm
/pzTd869M5LShe+eufC973m+n2Fj55KJymTt9ZgVy3AGMHoxvvEs/qZgDL4AlhbsAfv34g1TiRPx
RMZbWwU3GQzO9clNhGcYBpkY4UlGiWRd5scnMvx5tUWano9IMoXy1pOUBPgz4xC/xv8r1hSexNKi
B1Nhq6RIbQoVhy6i+MiCDffDEPyJITBvZZPYLwiQFFzVZ0Q45Moc8q8fwP34FGJ5FixaCevgBZT1
DMNs7Nok9iikL8GyfWkZ3VgvhbljP6yOy2BbmzWR/+o2vM/PSmLfkchTaAIlsHa1ourSS5Sfvg8r
3Q38mYb7+DzE9Ig2MDquAan2kth3AgKu0JSBapLCNranEWnPIHp2GDzZDEE3+1OBiXW4D4LHtViZ
CB/rBHJuHPmHp+CO3oK0Zyk7DvP4IGR1EwrPb673JX0mELslgvVRYW0O8usIvCe9AboyOdIPn1Ug
9+Kupihr69ZiZSJFsYRwztbRO4icGARv6IT3ZkCTsKp68J2dyE2MQuZtsFgllbZHTyMsAVqsaldC
Vt8CtvsYPHsZzvtH+tZIc5e+sfBtLOhFYytRFAlYuGGED2clGNn8lO62m53U37y6XmM7M8E3onEI
IpCSLp/vPyC31Bp6SUSsjmIbnO9jpVEZqbROzn15F5RDZs5CFs58FmaNBTZ5Ze+9hn11Genl/1mS
0qjChumaCVvo2iViNXHkuD1g9Daxt7lVEQPMNpcSdah1pQb5kqho4yVXQc2iacHiMMpNFPia/jv/
FWAAUTVTOunExzkAAAAASUVORK5CYII=

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://rubylearning.com/blog/wp-content/themes/adsmindedwide/images/blank.gif

R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://rubylearning.com/blog/wp-content/themes/adsmindedwide/images/button_rss.gif

R0lGODlhUAAPAPcAAGZmZv9mAP///4mOeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABQAA8A
AAi6AAEIHEiwoMGDCBMqXMhwoICHECNKnEixosWLGDMKFBCgo8ePIEN2FDCgpMmTKFOqXMlSpYCN
ImPGJNmyps2bKF8C4Cizp0eaOIMKzQlz5MOPEH8e/XkSYsqHQ6OW1MkzAM+rIKsiddl0qtShVJVq
XWo0a06gXgeg/Woz7EirIbXCZWpybVq7bFm6nXuVbNKtdZ0ChZoX516fMvEWznsYsUjFi782dmw2
smWqGTNr3syZYsPPoEOLNhgQADs=

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://rubylearning.com/blog/wp-content/themes/adsmindedwide/images/css.png

iVBORw0KGgoAAAANSUhEUgAAAFAAAAAPBAMAAACB51W8AAAAMFBMVEVeh7WHp8gaTpGsrrDKztL2
+fuvwtY7aqPO3ere395QUFDa5O7p7vJmZmb///+Jjnndrth/AAAAtklEQVR42mO4SyRguPeOKPAW
VeF/nACkMO2N9LsEQdHzlucIKBR/w/i6XKj01915BBRucmV/ppaecs0fZOK/9///vQMhLAoDeIo2
cqg/tnsKcuP7f//f/wchLArDFAsYZIRE5oE98x5i6HtsCl8rian3BWpAfA008T8EYSp8ytSh3vNM
+d3LeRA3vgMjbArT3zCmi5cYW/kR8PW7je/SAgv6chfHEVII9O7THpDNhBQSF9fEph4A47gQxJi2
8DIAAAAASUVORK5CYII=

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://rubylearning.com/blog/wp-content/themes/adsmindedwide/images/rssComments.png

iVBORw0KGgoAAAANSUhEUgAAAFAAAAAPCAIAAAD8q9/YAAAA9klEQVR4nO1XOw6DMAx1Km6U3ImZ
hYEDZGBh5k65UzoYrNR2DJUoSIUnBuvJcfyPcN57uBMaAEgpXe3GSQghNIvYugPszXmchgPs/AZ9
FwHgdbUbZ+MJeM7LZ5Oq2if6LmIX1RhVrpHl2T06KgO4tDhwnufMhTLarZnvu4jzbAgky7xIkm2H
0ggpSMvSMa2lsXQUUut4MSVTh73GmJcGyWolM6JaljpawLJ6rVuCNJgKbLegkhFJjtOg5sW2LHW0
loa1htTSRCIko12GN5GXkvkK6lkjZuLZEee9Tynd5B0OITzP0r9jneF9K3cTmyvqcri7/S29AcU+
sqd6QBHzAAAAAElFTkSuQmCC

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://rubylearning.com/blog/wp-content/themes/adsmindedwide/images/button_xhtml.gif

R0lGODlhUAAPALMAAF6HtYenyBpOkayusMrO0vb5+6/C1jtqo87d6t7f3lBQUNrk7unu8mZmZv//
/4mOeSH5BAAAAAAALAAAAABQAA8AAAT/sMlJq704682n+2AojmRpnmgqpezjvnAsz3Q9O+tnGA4T
LDpAYFhgPAYJBsjGbDpluAYocOgJHYvDISA4FB4KSWL5LJuhOayAUABUDYLdwUBo0B/KD8zx4j/8
gHp/fS5+UIZ9iFEgbQAMBwILAQAIXQ4DAx8FITF8hoCEhZ6gNIiDp39pBXBUAK4BPgIBBGMjUHtk
qJ6npnudhX1parJwBwgOBVzHJL+fwM+60Le+usJtAgiVxkpwmR8JtYqhpNHPuYm7onvWBlUMQu1U
BwSYAwoE52f6ToshkjoGkh2g5MBAAwUDNgnax5BJvxAKGSHI4wCciIYYazxkwbGjx48dB0KKHEnS
QgQAOw==

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://rubylearning.com/blog/wp-content/themes/adsmindedwide/style.css

BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 14px; BACKGROUND: =
#76898f; PADDING-BOTTOM: 0px; MARGIN-LEFT: auto; WIDTH: 1000px; COLOR: =
#000000; MARGIN-RIGHT: auto; PADDING-TOP: 0px; FONT-FAMILY: "Trebuchet =
MS", Verdana, Arial, sans-serif
}
A {
	COLOR: #0060c0; TEXT-DECORATION: none
}
A:hover {
	COLOR: #00006c; TEXT-DECORATION: none
}
H1 {
	DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 1.3em; COLOR: #e50066
}
H1 A {
	DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 1.3em; COLOR: #e50066
}
H1 A:hover {
	COLOR: #00006c; TEXT-DECORATION: none
}
H2 {
	DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 1.2em; COLOR: #e50066
}
H2 A {
	DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 1.2em; COLOR: #e50066
}
postcomment A {
	DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 1.2em; COLOR: #e50066
}
H2 A:hover {
	COLOR: #00006c; TEXT-DECORATION: none
}
postcomment A:hover {
	COLOR: #00006c; TEXT-DECORATION: none
}
H3 {
	FONT-WEIGHT: bold; FONT-SIZE: 1.1em; COLOR: #333333; FONT-FAMILY: =
Arial, Helvetica, sans-serif
}
H3 A {
	FONT-WEIGHT: bold; FONT-SIZE: 1.1em; COLOR: #333333; FONT-FAMILY: =
Arial, Helvetica, sans-serif
}
H3 A:hover {
	COLOR: #104070
}
H3.comments A {
	FONT-WEIGHT: bold; FONT-SIZE: 1.1em; COLOR: #333333; FONT-FAMILY: =
Arial, Helvetica, sans-serif
}
H3.comments A:hover {
	COLOR: #104070
}
IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
FORM {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
HR {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: #c5c5c5 1px dashed; =
PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px; =
PADDING-TOP: 0px; BORDER-BOTTOM: 0px; HEIGHT: 1px
}
UL {
	LIST-STYLE-IMAGE: url(images/li.png)
}
CODE {
	FONT-SIZE: 1em; COLOR: #666666; FONT-FAMILY: Courier New, Courier, =
Monospace
}
LI.buttons {
	DISPLAY: inline; MARGIN-LEFT: 2px; TEXT-TRANSFORM: none; COLOR: =
#ffffff; MARGIN-RIGHT: 2px; FONT-FAMILY: Arial, Helvetica, sans-serif; =
BACKGROUND-COLOR: #76898f; TEXT-DECORATION: none
}
LI.buttons A {
	BORDER-RIGHT: #000000 1px outset; PADDING-RIGHT: 4px; DISPLAY: inline; =
PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 4px; =
TEXT-TRANSFORM: none; COLOR: #ffffff; PADDING-TOP: 4px; BORDER-BOTTOM: =
#000000 1px outset; FONT-FAMILY: Arial, Helvetica, sans-serif; =
BACKGROUND-COLOR: #76898f; TEXT-DECORATION: none
}
LI.buttons A:hover {
	FONT-WEIGHT: bold; COLOR: #000000; BORDER-BOTTOM: #000000 4px solid; =
TEXT-DECORATION: none
}
LI.whitebox {
	PADDING-RIGHT: 10px; BORDER-TOP: #bbbbbb 1px solid; PADDING-LEFT: 10px; =
PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #ffffff
}
LI.graybox {
	PADDING-RIGHT: 10px; BORDER-TOP: #bbbbbb 1px solid; PADDING-LEFT: 10px; =
PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #f2f2f2
}
OL.commentlist {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
MARGIN-LEFT: 20px; COLOR: #333333; PADDING-TOP: 0px
}
#topbar {
	BACKGROUND: url(images/topbar_bg.jpg); LEFT: 0px; WIDTH: 1000px; =
POSITION: absolute; TOP: 140px
}
#topbar .topbartext {
	PADDING-RIGHT: 0px; MARGIN-TOP: -2px; PADDING-LEFT: 0px; BACKGROUND: =
#545454; MARGIN-BOTTOM: 0px; PADDING-BOTTOM: 4px; WIDTH: 1000px; =
PADDING-TOP: 2px
}
.previouspost {
	FONT-SIZE: 11px; COLOR: black
}
.previouspost H3 {
	FONT-WEIGHT: bold; FONT-SIZE: 17px; COLOR: black
}
.previouspost A {
	FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: #e50066; TEXT-DECORATION: =
underline
}
.postmetadata {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 11px; PADDING-BOTTOM: =
5px; COLOR: #000777; PADDING-TOP: 5px; TEXT-ALIGN: center
}
.alt {
	BORDER-TOP: #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; =
BACKGROUND-COLOR: #f4f4f4
}
BLOCKQUOTE {
	BORDER-RIGHT: #f4f4f4 5px solid; BORDER-TOP: #f4f4f4 3px solid; =
BACKGROUND: url(images/quote.gif) #f4f4f4 no-repeat 25px 5px; MARGIN: =
15px 20px 0px 25px; BORDER-LEFT: #f4f4f4 20px solid; COLOR: #777; =
BORDER-BOTTOM: #f4f4f4 3px solid
}
.post {
	MARGIN: 0px 0px 40px
}
.nolilink {
	PADDING-LEFT: 2px; FONT-SIZE: 0.9em; COLOR: #0060c0
}
.nolilink A {
	TEXT-DECORATION: underline
}
.nolilink A:hover {
	COLOR: #0060c0; TEXT-DECORATION: underline
}
.menu UL.slightbigger {
	FONT-SIZE: 1em
}
UL.tiny {
	FONT-WEIGHT: normal; FONT-SIZE: 0.8em
}
UL.tiny A {
	FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: #0060c0; TEXT-DECORATION: =
underline
}
UL.tiny A:hover {
	FONT-WEIGHT: bold; FONT-SIZE: 11px; COLOR: #0060c0; TEXT-DECORATION: =
underline
}
.content A {
	FONT-WEIGHT: bold; COLOR: #0060c0; TEXT-DECORATION: underline
}
.content A:hover {
	FONT-WEIGHT: bold; COLOR: #0060c0; TEXT-DECORATION: underline
}
.article A {
	FONT-WEIGHT: bold; COLOR: #0060c0; TEXT-DECORATION: underline
}
.article A:hover {
	FONT-WEIGHT: bold; COLOR: #00006c; TEXT-DECORATION: underline
}
.article {
	FONT-SIZE: 0.98em; LINE-HEIGHT: 15px; FONT-FAMILY: "Trebuchet MS", =
Verdana, Arial, sans-serif; LETTER-SPACING: 0px
}
.nounderline A {
	TEXT-DECORATION: none
}
.cmeta {
	FONT-SIZE: 11px; COLOR: #808080
}
#ed_toolbar INPUT {
	BORDER-RIGHT: #545454 1px solid; BORDER-TOP: #545454 1px solid; =
BORDER-LEFT: #545454 1px solid; BORDER-BOTTOM: #545454 1px solid; =
BACKGROUND-COLOR: #ffffff
}
.commentbutton {
	WIDTH: 460px; TEXT-ALIGN: right
}
.title {
	FONT-WEIGHT: bold; FONT-SIZE: 1.3em; COLOR: #e50066
}
.title A {
	FONT-WEIGHT: bold; FONT-SIZE: 1.3em; COLOR: #e50066
}
.title A:hover {
	COLOR: #00006c; TEXT-DECORATION: none
}
.small {
	FONT-SIZE: 0.9em
}
.small A {
	COLOR: #003399
}
.small A:hover {
	COLOR: #104070
}
.postnav {
	FONT-SIZE: 0.9em; MARGIN-RIGHT: 25px; TEXT-ALIGN: right
}
.postnav A {
	COLOR: #003399
}
.postnav A:hover {
	COLOR: #104070
}
.blocktitle {
	BORDER-RIGHT: #c5c5c5 2px solid; PADDING-RIGHT: 5px; BORDER-TOP: =
#c5c5c5 2px solid; PADDING-LEFT: 10px; FONT-WEIGHT: bold; FONT-SIZE: =
1em; PADDING-BOTTOM: 2px; TEXT-TRANSFORM: uppercase; BORDER-LEFT: =
#c5c5c5 2px solid; COLOR: #333333; PADDING-TOP: 3px; BORDER-BOTTOM: =
#c5c5c5 2px solid; FONT-FAMILY: Arial, Helvetica, sans-serif
}
.block {
	BORDER-RIGHT: #c5c5c5 1px solid; PADDING-RIGHT: 10px; PADDING-LEFT: =
10px; PADDING-BOTTOM: 6px; BORDER-LEFT: #c5c5c5 1px solid; PADDING-TOP: =
6px; BORDER-BOTTOM: #c5c5c5 1px solid; BACKGROUND-COLOR: #ecf1f4
}
.menu {
	FONT-SIZE: 0.9em
}
.menu A {
	FONT-SIZE: 0.98em
}
.menu UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 0.9em; =
LIST-STYLE-IMAGE: url(images/li.png); PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 0px 13px; PADDING-TOP: 0px
}
.error {
	COLOR: #cc0000
}
.meta {
	FONT-SIZE: 0.9em; BACKGROUND: url(images/textbg.jpg) no-repeat
}
META A {
	FONT-SIZE: 0.9em; BACKGROUND: url(images/textbg.jpg) no-repeat
}
.meta LI {
	DISPLAY: inline
}
UL.post-meta LI {
	DISPLAY: inline
}
.meta UL {
	PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
#wrapper {
	WIDTH: 100%; POSITION: relative; HEIGHT: auto
}
#searchbar {
	FLOAT: left; BACKGROUND-IMAGE: url(images/bg_searchbar.gif); WIDTH: =
100%; BORDER-BOTTOM: #333333 1px solid; HEIGHT: 42px
}
#searchbox {
	FLOAT: left; PADDING-BOTTOM: 0px; WIDTH: 415px; PADDING-TOP: 12px
}
#current_time {
	FONT-SIZE: 0.9em; FLOAT: right; WIDTH: 300px; COLOR: #333333; =
MARGIN-RIGHT: 22px; PADDING-TOP: 14px; TEXT-ALIGN: right
}
#header {
	CLEAR: both; BACKGROUND: url(images/header_bg.jpg); LEFT: 0px; TOP: =
42px; HEIGHT: 100px
}
#heading {
	LEFT: 10px; POSITION: absolute; TOP: 58px
}
#heading H1 A {
	MARGIN-TOP: 8px; FONT-WEIGHT: bold; MARGIN-LEFT: 10px; COLOR: white; =
PADDING-TOP: 0px; TEXT-ALIGN: left
}
.description {
	MARGIN-TOP: 8px; FONT-WEIGHT: bold; MARGIN-LEFT: 10px; COLOR: white; =
PADDING-TOP: 0px; TEXT-ALIGN: left
}
#heading H1 A {
	FONT-SIZE: 1.6em; COLOR: white
}
#headerads {
	CLEAR: both; PADDING-RIGHT: 0px; FLOAT: right; WIDTH: 250px; =
PADDING-TOP: 10px
}
#headerads DIV.txt {
	FONT-WEIGHT: bold; TEXT-ALIGN: center
}
#contentwrapper {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: =
100%; PADDING-TOP: 0px
}
#content {
	PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FLOAT: left; PADDING-BOTTOM: =
15px; WIDTH: 970px; PADDING-TOP: 15px; BACKGROUND-COLOR: #ffffff; =
TEXT-ALIGN: left
}
#blogs {
	FLOAT: left; WIDTH: 560px
}
#squaresidebar {
	BORDER-RIGHT: #c5c5c5 2px solid; PADDING-RIGHT: 10px; BORDER-TOP: =
#c5c5c5 2px solid; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: =
10px; MARGIN: 30px 0px 0px 20px; BORDER-LEFT: #c5c5c5 2px solid; WIDTH: =
364px; PADDING-TOP: 10px; BORDER-BOTTOM: #c5c5c5 2px solid; =
BACKGROUND-COLOR: #ecf1f4; TEXT-ALIGN: left
}
#centerbar {
	FLOAT: left; MARGIN: 30px 10px 0px 20px; WIDTH: 180px; HEIGHT: auto; =
TEXT-ALIGN: left
}
#sidebar {
	MARGIN-TOP: 20px; FLOAT: right; WIDTH: 200px; HEIGHT: auto; TEXT-ALIGN: =
left
}
#footer {
	CLEAR: both; FONT-SIZE: 0.9em; BACKGROUND-IMAGE: =
url(images/bg_searchbar.gif); PADDING-BOTTOM: 0px; WIDTH: 100%; COLOR: =
#333333; PADDING-TOP: 15px; HEIGHT: 40px; BACKGROUND-COLOR: #f5f5f5
}
#footerbuttons {
	MARGIN-TOP: -4px; FLOAT: right; MARGIN-RIGHT: 12px
}
#replyform {
	PADDING-RIGHT: 15px; BORDER-TOP: #999999 1px dotted; PADDING-LEFT: =
15px; PADDING-BOTTOM: 0px; PADDING-TOP: 10px; BORDER-BOTTOM: #999999 1px =
dotted; BACKGROUND-COLOR: #f5f5f5
}
INPUT[type=3Dtext]:focus {
	BACKGROUND: #ffe6bf
}
TEXTAREA:focus {
	BACKGROUND: #ffe6bf
}
IMG.centered {
	DISPLAY: block; MARGIN-LEFT: auto; MARGIN-RIGHT: auto
}
IMG.alignright {
	PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; PADDING-BOTTOM: =
4px; MARGIN: 0px 0px 2px 7px; PADDING-TOP: 4px
}
IMG.alignleft {
	PADDING-RIGHT: 4px; DISPLAY: inline; PADDING-LEFT: 4px; PADDING-BOTTOM: =
4px; MARGIN: 0px 7px 2px 0px; PADDING-TOP: 4px
}
IMG.border {
	BORDER-RIGHT: #999999 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: =
#999999 1px solid; PADDING-LEFT: 5px; BACKGROUND: #eeeeee; =
PADDING-BOTTOM: 5px; MARGIN: auto; BORDER-LEFT: #999999 1px solid; =
PADDING-TOP: 5px; BORDER-BOTTOM: #999999 1px solid
}
.alignright {
	BORDER-RIGHT: #999999 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: =
#999999 1px solid; PADDING-LEFT: 5px; BACKGROUND: #eeeeee; FLOAT: right; =
PADDING-BOTTOM: 5px; MARGIN: 0px 0px 2px 7px; BORDER-LEFT: #999999 1px =
solid; PADDING-TOP: 5px; BORDER-BOTTOM: #999999 1px solid
}
.alignleft {
	BORDER-RIGHT: #999999 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: =
#999999 1px solid; PADDING-LEFT: 5px; BACKGROUND: #eeeeee; FLOAT: left; =
PADDING-BOTTOM: 5px; MARGIN: 0px 7px 2px 0px; BORDER-LEFT: #999999 1px =
solid; PADDING-TOP: 5px; BORDER-BOTTOM: #999999 1px solid
}
#wp-calendar {
	FONT-SIZE: 0.9em; MARGIN: 0px; WIDTH: 100%; empty-cells: show
}
#wp-calendar #next A {
	PADDING-RIGHT: 10px; TEXT-ALIGN: right
}
#wp-calendar #prev A {
	PADDING-LEFT: 10px; TEXT-ALIGN: left
}
#wp-calendar A {
	DISPLAY: block; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
#wp-calendar CAPTION {
	FONT-WEIGHT: bold; FONT-SIZE: 1.2em; COLOR: #104070; TEXT-ALIGN: center
}
#wp-calendar TD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px; LETTER-SPACING: normal; TEXT-ALIGN: center
}
#wp-calendar TD:hover {
	FONT-WEIGHT: normal; COLOR: red
}
#wp-calendar #today {
	FONT-WEIGHT: normal; COLOR: red
}
#wp-calendar TH {
	TEXT-TRANSFORM: capitalize; FONT-STYLE: normal
}

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://rubylearning.com/blog/wp-content/plugins/submititstyle.css

.pnbsmall {
	FONT-SIZE: 0.9em; COLOR: #666; LINE-HEIGHT: 18px
}
.technorati {
	PADDING-RIGHT: 8px; PADDING-LEFT: 20px; BACKGROUND: =
url(submititicons/technobubble.gif) no-repeat left 50%
}
.feedster {
	PADDING-RIGHT: 8px; PADDING-LEFT: 20px; BACKGROUND: =
url(submititicons/feedster.gif) no-repeat left 50%
}
.bloglines {
	PADDING-RIGHT: 8px; PADDING-LEFT: 20px; BACKGROUND: =
url(submititicons/bloglines.gif) no-repeat left 50%
}
.pdeli {
	PADDING-RIGHT: 8px; PADDING-LEFT: 20px; BACKGROUND: =
url(submititicons/delicious.gif) no-repeat left 50%
}
.spurl {
	PADDING-RIGHT: 8px; PADDING-LEFT: 20px; BACKGROUND: =
url(submititicons/spurl.gif) no-repeat left 50%
}
.furl {
	PADDING-RIGHT: 8px; PADDING-LEFT: 20px; BACKGROUND: =
url(submititicons/furl.gif) no-repeat left 50%
}
.blink {
	PADDING-RIGHT: 8px; PADDING-LEFT: 20px; BACKGROUND: =
url(submititicons/blink.png) no-repeat left 50%
}
.digg {
	PADDING-RIGHT: 8px; PADDING-LEFT: 20px; BACKGROUND: =
url(submititicons/digg.gif) no-repeat left 50%
}
.simpy {
	PADDING-RIGHT: 5px; PADDING-LEFT: 20px; BACKGROUND: =
url(submititicons/simpy.png) no-repeat left 50%
}

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://rubylearning.com/blog/wp-includes/js/quicktags.js

// new edit toolbar used with permission=0A=
// by Alex King=0A=
// http://www.alexking.org/=0A=
=0A=
var edButtons =3D new Array();=0A=
var edLinks =3D new Array();=0A=
var edOpenTags =3D new Array();=0A=
=0A=
function edButton(id, display, tagStart, tagEnd, access, open) {=0A=
	this.id =3D id;				// used to name the toolbar button=0A=
	this.display =3D display;		// label on button=0A=
	this.tagStart =3D tagStart; 	// open tag=0A=
	this.tagEnd =3D tagEnd;		// close tag=0A=
	this.access =3D access;		// access key=0A=
	this.open =3D open;			// set to -1 if tag does not need to be closed=0A=
}=0A=
=0A=
function zeroise(number, threshold) {=0A=
	// FIXME: or we could use an implementation of printf in js here=0A=
	var str =3D number.toString();=0A=
	if (number < 0) { str =3D str.substr(1, str.length) }=0A=
	while (str.length < threshold) { str =3D "0" + str }=0A=
	if (number < 0) { str =3D '-' + str }=0A=
	return str;=0A=
}=0A=
=0A=
var now =3D new Date();=0A=
var datetime =3D now.getUTCFullYear() + '-' + =0A=
zeroise(now.getUTCMonth() + 1, 2) + '-' +=0A=
zeroise(now.getUTCDate(), 2) + 'T' + =0A=
zeroise(now.getUTCHours(), 2) + ':' + =0A=
zeroise(now.getUTCMinutes(), 2) + ':' + =0A=
zeroise(now.getUTCSeconds() ,2) +=0A=
'+00:00';=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_strong'=0A=
,'b'=0A=
,'<strong>'=0A=
,'</strong>'=0A=
,'b'=0A=
);=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_em'=0A=
,'i'=0A=
,'<em>'=0A=
,'</em>'=0A=
,'i'=0A=
);=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_link'=0A=
,'link'=0A=
,''=0A=
,'</a>'=0A=
,'a'=0A=
); // special case=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_block'=0A=
,'b-quote'=0A=
,'\n\n<blockquote>'=0A=
,'</blockquote>\n\n'=0A=
,'q'=0A=
);=0A=
=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_del'=0A=
,'del'=0A=
,'<del datetime=3D"' + datetime + '">'=0A=
,'</del>'=0A=
,'d'=0A=
);=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_ins'=0A=
,'ins'=0A=
,'<ins datetime=3D"' + datetime + '">'=0A=
,'</ins>'=0A=
,'s'=0A=
);=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_img'=0A=
,'img'=0A=
,''=0A=
,''=0A=
,'m'=0A=
,-1=0A=
); // special case=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_ul'=0A=
,'ul'=0A=
,'<ul>\n'=0A=
,'</ul>\n\n'=0A=
,'u'=0A=
);=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_ol'=0A=
,'ol'=0A=
,'<ol>\n'=0A=
,'</ol>\n\n'=0A=
,'o'=0A=
);=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_li'=0A=
,'li'=0A=
,'\t<li>'=0A=
,'</li>\n'=0A=
,'l'=0A=
);=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_code'=0A=
,'code'=0A=
,'<code>'=0A=
,'</code>'=0A=
,'c'=0A=
);=0A=
=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_more'=0A=
,'more'=0A=
,'<!--more-->'=0A=
,''=0A=
,'t'=0A=
,-1=0A=
);=0A=
/*=0A=
edButtons[edButtons.length] =3D =0A=
new edButton('ed_next'=0A=
,'page'=0A=
,'<!--nextpage-->'=0A=
,''=0A=
,'p'=0A=
,-1=0A=
);=0A=
*/=0A=
function edLink() {=0A=
	this.display =3D '';=0A=
	this.URL =3D '';=0A=
	this.newWin =3D 0;=0A=
}=0A=
=0A=
edLinks[edLinks.length] =3D new edLink('WordPress'=0A=
                                    ,'http://wordpress.org/'=0A=
                                    );=0A=
=0A=
edLinks[edLinks.length] =3D new edLink('alexking.org'=0A=
                                    ,'http://www.alexking.org/'=0A=
                                    );=0A=
=0A=
function edShowButton(button, i) {=0A=
	if (button.id =3D=3D 'ed_img') {=0A=
		document.write('<input type=3D"button" id=3D"' + button.id + '" =
accesskey=3D"' + button.access + '" class=3D"ed_button" =
onclick=3D"edInsertImage(edCanvas);" value=3D"' + button.display + '" =
/>');=0A=
	}=0A=
	else if (button.id =3D=3D 'ed_link') {=0A=
		document.write('<input type=3D"button" id=3D"' + button.id + '" =
accesskey=3D"' + button.access + '" class=3D"ed_button" =
onclick=3D"edInsertLink(edCanvas, ' + i + ');" value=3D"' + =
button.display + '" />');=0A=
	}=0A=
	else {=0A=
		document.write('<input type=3D"button" id=3D"' + button.id + '" =
accesskey=3D"' + button.access + '" class=3D"ed_button" =
onclick=3D"edInsertTag(edCanvas, ' + i + ');" value=3D"' + =
button.display + '"  />');=0A=
	}=0A=
}=0A=
=0A=
function edShowLinks() {=0A=
	var tempStr =3D '<select =
onchange=3D"edQuickLink(this.options[this.selectedIndex].value, =
this);"><option value=3D"-1" selected>(Quick Links)</option>';=0A=
	for (i =3D 0; i < edLinks.length; i++) {=0A=
		tempStr +=3D '<option value=3D"' + i + '">' + edLinks[i].display + =
'</option>';=0A=
	}=0A=
	tempStr +=3D '</select>';=0A=
	document.write(tempStr);=0A=
}=0A=
=0A=
function edAddTag(button) {=0A=
	if (edButtons[button].tagEnd !=3D '') {=0A=
		edOpenTags[edOpenTags.length] =3D button;=0A=
		document.getElementById(edButtons[button].id).value =3D '/' + =
document.getElementById(edButtons[button].id).value;=0A=
	}=0A=
}=0A=
=0A=
function edRemoveTag(button) {=0A=
	for (i =3D 0; i < edOpenTags.length; i++) {=0A=
		if (edOpenTags[i] =3D=3D button) {=0A=
			edOpenTags.splice(i, 1);=0A=
			document.getElementById(edButtons[button].id).value =3D 		=
document.getElementById(edButtons[button].id).value.replace('/', '');=0A=
		}=0A=
	}=0A=
}=0A=
=0A=
function edCheckOpenTags(button) {=0A=
	var tag =3D 0;=0A=
	for (i =3D 0; i < edOpenTags.length; i++) {=0A=
		if (edOpenTags[i] =3D=3D button) {=0A=
			tag++;=0A=
		}=0A=
	}=0A=
	if (tag > 0) {=0A=
		return true; // tag found=0A=
	}=0A=
	else {=0A=
		return false; // tag not found=0A=
	}=0A=
}	=0A=
=0A=
function edCloseAllTags() {=0A=
	var count =3D edOpenTags.length;=0A=
	for (o =3D 0; o < count; o++) {=0A=
		edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]);=0A=
	}=0A=
}=0A=
=0A=
function edQuickLink(i, thisSelect) {=0A=
	if (i > -1) {=0A=
		var newWin =3D '';=0A=
		if (edLinks[i].newWin =3D=3D 1) {=0A=
			newWin =3D ' target=3D"_blank"';=0A=
		}=0A=
		var tempStr =3D '<a href=3D"' + edLinks[i].URL + '"' + newWin + '>' =0A=
		            + edLinks[i].display=0A=
		            + '</a>';=0A=
		thisSelect.selectedIndex =3D 0;=0A=
		edInsertContent(edCanvas, tempStr);=0A=
	}=0A=
	else {=0A=
		thisSelect.selectedIndex =3D 0;=0A=
	}=0A=
}=0A=
=0A=
function edSpell(myField) {=0A=
	var word =3D '';=0A=
	if (document.selection) {=0A=
		myField.focus();=0A=
	    var sel =3D document.selection.createRange();=0A=
		if (sel.text.length > 0) {=0A=
			word =3D sel.text;=0A=
		}=0A=
	}=0A=
	else if (myField.selectionStart || myField.selectionStart =3D=3D '0') {=0A=
		var startPos =3D myField.selectionStart;=0A=
		var endPos =3D myField.selectionEnd;=0A=
		if (startPos !=3D endPos) {=0A=
			word =3D myField.value.substring(startPos, endPos);=0A=
		}=0A=
	}=0A=
	if (word =3D=3D '') {=0A=
		word =3D prompt('Enter a word to look up:', '');=0A=
	}=0A=
	if (word !=3D=3D null && /^\w[\w ]*$/.test(word)) {=0A=
		window.open('http://www.answers.com/' + escape(word));=0A=
	}=0A=
}=0A=
=0A=
function edToolbar() {=0A=
	document.write('<div id=3D"ed_toolbar">');=0A=
	for (i =3D 0; i < edButtons.length; i++) {=0A=
		edShowButton(edButtons[i], i);=0A=
	}=0A=
	document.write('<input type=3D"button" id=3D"ed_spell" =
class=3D"ed_button" onclick=3D"edSpell(edCanvas);" title=3D"Dictionary =
lookup" value=3D"lookup" />');=0A=
	document.write('<input type=3D"button" id=3D"ed_close" =
class=3D"ed_button" onclick=3D"edCloseAllTags();" title=3D"Close all =
open tags" value=3D"Close Tags" />');=0A=
//	edShowLinks(); // disabled by default=0A=
	document.write('</div>');=0A=
}=0A=
=0A=
// insertion code=0A=
=0A=
function edInsertTag(myField, i) {=0A=
	//IE support=0A=
	if (document.selection) {=0A=
		myField.focus();=0A=
	    sel =3D document.selection.createRange();=0A=
		if (sel.text.length > 0) {=0A=
			sel.text =3D edButtons[i].tagStart + sel.text + edButtons[i].tagEnd;=0A=
		}=0A=
		else {=0A=
			if (!edCheckOpenTags(i) || edButtons[i].tagEnd =3D=3D '') {=0A=
				sel.text =3D edButtons[i].tagStart;=0A=
				edAddTag(i);=0A=
			}=0A=
			else {=0A=
				sel.text =3D edButtons[i].tagEnd;=0A=
				edRemoveTag(i);=0A=
			}=0A=
		}=0A=
		myField.focus();=0A=
	}=0A=
	//MOZILLA/NETSCAPE support=0A=
	else if (myField.selectionStart || myField.selectionStart =3D=3D '0') {=0A=
		var startPos =3D myField.selectionStart;=0A=
		var endPos =3D myField.selectionEnd;=0A=
		var cursorPos =3D endPos;=0A=
		var scrollTop =3D myField.scrollTop;=0A=
=0A=
		if (startPos !=3D endPos) {=0A=
			myField.value =3D myField.value.substring(0, startPos)=0A=
			              + edButtons[i].tagStart=0A=
			              + myField.value.substring(startPos, endPos) =0A=
			              + edButtons[i].tagEnd=0A=
			              + myField.value.substring(endPos, myField.value.length);=0A=
			cursorPos +=3D edButtons[i].tagStart.length + =
edButtons[i].tagEnd.length;=0A=
		}=0A=
		else {=0A=
			if (!edCheckOpenTags(i) || edButtons[i].tagEnd =3D=3D '') {=0A=
				myField.value =3D myField.value.substring(0, startPos) =0A=
				              + edButtons[i].tagStart=0A=
				              + myField.value.substring(endPos, =
myField.value.length);=0A=
				edAddTag(i);=0A=
				cursorPos =3D startPos + edButtons[i].tagStart.length;=0A=
			}=0A=
			else {=0A=
				myField.value =3D myField.value.substring(0, startPos) =0A=
				              + edButtons[i].tagEnd=0A=
				              + myField.value.substring(endPos, =
myField.value.length);=0A=
				edRemoveTag(i);=0A=
				cursorPos =3D startPos + edButtons[i].tagEnd.length;=0A=
			}=0A=
		}=0A=
		myField.focus();=0A=
		myField.selectionStart =3D cursorPos;=0A=
		myField.selectionEnd =3D cursorPos;=0A=
		myField.scrollTop =3D scrollTop;=0A=
	}=0A=
	else {=0A=
		if (!edCheckOpenTags(i) || edButtons[i].tagEnd =3D=3D '') {=0A=
			myField.value +=3D edButtons[i].tagStart;=0A=
			edAddTag(i);=0A=
		}=0A=
		else {=0A=
			myField.value +=3D edButtons[i].tagEnd;=0A=
			edRemoveTag(i);=0A=
		}=0A=
		myField.focus();=0A=
	}=0A=
}=0A=
=0A=
function edInsertContent(myField, myValue) {=0A=
	//IE support=0A=
	if (document.selection) {=0A=
		myField.focus();=0A=
		sel =3D document.selection.createRange();=0A=
		sel.text =3D myValue;=0A=
		myField.focus();=0A=
	}=0A=
	//MOZILLA/NETSCAPE support=0A=
	else if (myField.selectionStart || myField.selectionStart =3D=3D '0') {=0A=
		var startPos =3D myField.selectionStart;=0A=
		var endPos =3D myField.selectionEnd;=0A=
		myField.value =3D myField.value.substring(0, startPos)=0A=
		              + myValue =0A=
                      + myField.value.substring(endPos, =
myField.value.length);=0A=
		myField.focus();=0A=
		myField.selectionStart =3D startPos + myValue.length;=0A=
		myField.selectionEnd =3D startPos + myValue.length;=0A=
	} else {=0A=
		myField.value +=3D myValue;=0A=
		myField.focus();=0A=
	}=0A=
}=0A=
=0A=
function edInsertLink(myField, i, defaultValue) {=0A=
	if (!defaultValue) {=0A=
		defaultValue =3D 'http://';=0A=
	}=0A=
	if (!edCheckOpenTags(i)) {=0A=
		var URL =3D prompt('Enter the URL' ,defaultValue);=0A=
		if (URL) {=0A=
			edButtons[i].tagStart =3D '<a href=3D"' + URL + '">';=0A=
			edInsertTag(myField, i);=0A=
		}=0A=
	}=0A=
	else {=0A=
		edInsertTag(myField, i);=0A=
	}=0A=
}=0A=
=0A=
function edInsertImage(myField) {=0A=
	var myValue =3D prompt('Enter the URL of the image', 'http://');=0A=
	if (myValue) {=0A=
		myValue =3D '<img src=3D"' =0A=
				+ myValue =0A=
				+ '" alt=3D"' + prompt('Enter a description of the image', '') =0A=
				+ '" />';=0A=
		edInsertContent(myField, myValue);=0A=
	}=0A=
}=0A=

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: application/x-php
Content-Transfer-Encoding: 7bit
Content-Location: http://rubylearning.com/blog/wp-content/plugins/comment_quicktags.php

var edButtons = new Array();

edButtons[edButtons.length] =
new edButton('ed_strong'
,'str'
,'<strong>'
,'</strong>'
,'b'
);

edButtons[edButtons.length] =
new edButton('ed_em'
,'em'
,'<em>'
,'</em>'
,'i'
);

edButtons[edButtons.length] =
new edButton('ed_link'
,'link'
,''
,'</a>'
,'a'
); // special case

edButtons[edButtons.length] =
new edButton('ed_block'
,'b-quote'
,'<blockquote>'
,'</blockquote>'
,'q'
);

edButtons[edButtons.length] =
new edButton('ed_pre'
,'code'
,'<code>'
,'</code>'
,'c'
);

edButtons[edButtons.length] =
new edButton('ed_strike'
,'strike'
,'<strike>'
,'</strike>'
,'s'
);


------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://rubylearning.com/blog/wp-content/plugins/live-comment-preview.php/commentPreview.js


function wptexturize(text) {
	text =3D ' '+text+' ';
	var next 	=3D true;
	var output 	=3D '';
	var prev 	=3D 0;
	var length 	=3D text.length;
	while ( prev < length ) {
		var index =3D text.indexOf('<', prev);
		if ( index > -1 ) {
			if ( index =3D=3D prev ) {
				index =3D text.indexOf('>', prev);
			}
			index++;
		} else {
			index =3D length;
		}
		var s =3D text.substring(prev, index);
		prev =3D index;
		if ( s.substr(0,1) !=3D '<' && next =3D=3D true ) {
			s =3D s.replace(/---/g, '&#8212;');
			s =3D s.replace(/--/g, '&#8211;');
			s =3D s.replace(/\.{3}/g, '&#8230;');
			s =3D s.replace(/``/g, '&#8220;');
			s =3D s.replace(/'s/g, '&#8217;s');
			s =3D s.replace(/'(\d\d(?:&#8217;|')?s)/g, '&#8217;$1');
			s =3D s.replace(/([\s"])'/g, '$1&#8216;');
			s =3D s.replace(/(\d+)"/g, '$1&Prime;');
			s =3D s.replace(/(\d+)'/g, '$1&prime;');
			s =3D s.replace(/([^\s])'([^'\s])/g, '$1&#8217;$2');
			s =3D s.replace(/(\s)"([^\s])/g, '$1&#8220;$2');
			s =3D s.replace(/"(\s)/g, '&#8221;$1');
			s =3D s.replace(/'(\s|.)/g, '&#8217;$1');
			s =3D s.replace(/\(tm\)/ig, '&#8482;');
			s =3D s.replace(/\(c\)/ig, '&#169;');
			s =3D s.replace(/\(r\)/ig, '&#174;');
			s =3D s.replace(/''/g, '&#8221;');
			s =3D s.replace(/(\d+)x(\d+)/g, '$1&#215;$2');
		} else if ( s.substr(0,5) =3D=3D '<code' ) {
			next =3D false;
		} else {
			next =3D true;
		}
		output +=3D s;=20
	}
	return output.substr(1, output.length-2);=09
}

function wpautop(p) {
	p =3D p + '\n\n';
	p =3D p.replace(/(<blockquote[^>]*>)/g, '\n$1');
	p =3D p.replace(/(<\/blockquote[^>]*>)/g, '$1\n');
	p =3D p.replace(/\r\n/g, '\n');
	p =3D p.replace(/\r/g, '\n');
	p =3D p.replace(/\n\n+/g, '\n\n');
	p =3D p.replace(/\n?(.+?)(?:\n\s*\n)/g, '<p>$1</p>');
	p =3D p.replace(/<p>\s*?<\/p>/g, '');
	p =3D p.replace(/<p>\s*(<\/?blockquote[^>]*>)\s*<\/p>/g, '$1');
	p =3D p.replace(/<p><blockquote([^>]*)>/ig, '<blockquote$1><p>');
	p =3D p.replace(/<\/blockquote><\/p>/ig, '<p></blockquote>');=09
	p =3D p.replace(/<p>\s*<blockquote([^>]*)>/ig, '<blockquote$1>');
	p =3D p.replace(/<\/blockquote>\s*<\/p>/ig, '</blockquote>');=09
	p =3D p.replace(/\s*\n\s*/g, '<br />');
	return p;
}

function updateLivePreview() {
=09
	var cmntArea =3D document.getElementById('comment');
	var pnmeArea =3D document.getElementById('author');
	var purlArea =3D document.getElementById('url');
=09
	if( cmntArea )
		var cmnt =3D wpautop(wptexturize(cmntArea.value));

	if( pnmeArea )
		var pnme =3D pnmeArea.value;
=09
	if( purlArea )
		var purl =3D purlArea.value;
	=09
	if(purl && pnme) {
		var name =3D '<a href=3D"' + purl + '">' + pnme + '</a> says';
	} else if(!purl && pnme) {
		var name =3D pnme + ' says';
	} else if(purl && !pnme) {
		var name =3D '<a href=3D"' + purl + '">You</a> say';
	} else {
		var name =3D "You say";
	}
=09
        document.getElementById('commentPreview').innerHTML =3D =
'<p><strong>Preview:</strong></p><p><em>' + name + ':</em></p><p>' + =
cmnt + '</p>';=0A=
}

function initLivePreview() {
	if(!document.getElementById)
		return false;

	var cmntArea =3D document.getElementById('comment');
	var pnmeArea =3D document.getElementById('author');
	var purlArea =3D document.getElementById('url');
=09
	if ( cmntArea )
		cmntArea.onkeyup =3D updateLivePreview;
=09
	if ( pnmeArea )
		pnmeArea.onkeyup =3D updateLivePreview;
=09
	if ( purlArea )
		purlArea.onkeyup =3D updateLivePreview;=09
}

//=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D
// Event Listener by Scott Andrew - http://scottandrew.com
// edited by Mark Wubben, <useCapture> is now set to false
//=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D
function addEvent(obj, evType, fn){
	if(obj.addEventListener){
		obj.addEventListener(evType, fn, false);=20
		return true;
	} else if (obj.attachEvent){
		var r =3D obj.attachEvent('on'+evType, fn);
		return r;
	} else {
		return false;
	}
}

addEvent(window, "load", initLivePreview);


------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://scripts.chitika.net/eminimalls/mm.js

ch_ad_url =3D '';=0A=
ch_oeh =3D window.onerror;=0A=
=0A=
function dq(s) { return (s !=3D null) ? '"' + s + '"' : '""'; }=0A=
function ch_au(p,v) { if (v) { window.ch_ad_url +=3D '&' + p + '=3D' + =
v; } }=0A=
function ch_aue(p,v) { if (v) { ch_au(p,escape(v)); } }=0A=
=0A=
function ch_mm() {=0A=
  var w =3D window;=0A=
  w.onerror =3D w.ch_oeh;=0A=
  w.ch_ad_url =3D 'http://mm.chitika.net/minimall?w=3D' + w.ch_width + =
'&h=3D' + ch_height;=0A=
  ch_aue('client', w.ch_client);=0A=
  ch_aue('accountid', w.ch_accountid);=0A=
  ch_aue('noctxt', w.ch_non_contextual);=0A=
  ch_aue('partner', w.ch_partner);=0A=
  ch_aue('sid', w.ch_sid);=0A=
  ch_au('provider', w.ch_provider);=0A=
  ch_aue('url', w.ch_pu);=0A=
=0A=
  if ( w['ch_send_title'] && (!w['ch_query'] || w.ch_query =3D=3D =
'INSERT ARTICLE TITLE HERE' )) {=0A=
    try {=0A=
      w.ch_query =3D document.getElementsByTagName('title')[0].innerHTML;=0A=
    } catch (e) {}=0A=
  }=0A=
=0A=
  ch_aue('query', w.ch_query);=0A=
=0A=
  if ( w.ch_type ) {=0A=
=0A=
    if ( w['ch_send_title'] && (!w['ch_queries']) ) {=0A=
      w.ch_queries =3D new =
Array(document.getElementsByTagName('title')[0].innerHTML);=0A=
    }=0A=
=0A=
    ch_au('type', w.ch_type);=0A=
    if ( w.ch_queries && =
w.ch_queries.constructor.toString().indexOf("Array") !=3D -1) {=0A=
      if ( w['ch_send_title'] ) {=0A=
        try {=0A=
          =
w.ch_queries.push(document.getElementsByTagName('title')[0].innerHTML);=0A=
        } catch (e) { }=0A=
      }=0A=
      ch_aue('mquery', w.ch_queries.join('|') );=0A=
    } else if ( w.ch_query ) {=0A=
      ch_aue('mquery', w.ch_query);=0A=
    }=0A=
  }=0A=
  ch_aue('tptracker', w.ch_third_party_tracker);=0A=
  ch_aue('defaulttab', w.ch_default_tab);=0A=
  ch_aue('defaultcat', w.ch_default_category);=0A=
  ch_aue('filtercat', w.ch_filter_category);=0A=
  ch_aue('cttarget', w.ch_target);=0A=
  ch_aue('att', w.ch_att);=0A=
  ch_aue('nosearch', w.ch_nosearch);=0A=
  ch_aue('noprice', w.ch_noprice);=0A=
  ch_aue('vertical', w.ch_vertical);=0A=
  ch_aue('cl_border', w.ch_color_border);=0A=
  ch_aue('cl_bg', w.ch_color_bg);=0A=
  ch_aue('cl_title', w.ch_color_title);=0A=
  ch_aue('cl_text', w.ch_color_text);=0A=
  ch_aue('fn_title', w.ch_font_title);=0A=
  ch_aue('fn_text', w.ch_font_text);=0A=
  ch_aue('alturl', w.ch_alternate_ad_url);=0A=
  ch_aue('altcss', w.ch_alternate_css_url);=0A=
  ch_aue('ref', document.referrer);=0A=
  var r =3D Math.round(Math.random() * 1000);=0A=
  ch_au('cb', r);=0A=
  w.ch_ad_url =3D w.ch_ad_url.substring(0, 2048);=0A=
  w.ch_ad_url =3D w.ch_ad_url.replace(/%\w?$/, '');=0A=
=0A=
  document.write('<ifr' + 'ame' + ' name=3D"ch_ad'+r+'"' + ' width=3D' + =
dq(w.ch_width) + ' height=3D' + dq(w.ch_height) + ' frameborder=3D"0"' + =
' src=3D' + dq(w.ch_ad_url) + ' marginwidth=3D"0"' + ' =
marginheight=3D"0"' + ' vspace=3D"0"' + ' hspace=3D"0"' + ' =
allowtransparency=3D"true"' + ' scrolling=3D"no">' + '</ifr' + 'ame>');=0A=
=0A=
  w.ch_pu =3D null;=0A=
  w.ch_ad_url =3D null;=0A=
  w.ch_query =3D null;=0A=
  w.ch_type =3D null;=0A=
  w.ch_alternate_css_url =3D null;=0A=
  w.ch_sid =3D null;=0A=
  w.ch_nosearch =3D null;=0A=
  w.ch_noprice =3D null;=0A=
  w.ch_default_tab =3D null;=0A=
  w.ch_default_category =3D null;=0A=
  w.ch_filter_category =3D null;=0A=
  w.ch_vertical =3D null;=0A=
}=0A=
=0A=
function ch_eh(m,u,l) {=0A=
  ch_mm();=0A=
  return true;=0A=
}=0A=
=0A=
window.onerror =3D ch_eh;=0A=
=0A=
if (window.ch_pu =3D=3D null) {=0A=
  ch_pu =3D document.location;=0A=
} else {=0A=
  ch_loc =3D document.location;=0A=
}=0A=
=0A=
ch_mm();=0A=
=0A=

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://learningruby.jobcoin.com/jobs/show_embedded_vertical?styles[mouseover_color]=000000&styles[hover_color]=FFFFFF&styles[background]=FFFFFF&styles[num_jobs]=6&styles[border_type]=Solid&styles[title_color]=E50066&styles[color]=E50066&styles[border_color]=000000&styles[width]=160&styles[hover_background]=000000&referring_site_id=&filter=

var JC_iframe =3D "<iframe id=3D'jobcoin_frame' name=3D\"jobcoin_frame\" =
src=3D\"http://learningruby.jobcoin.com/jobs/widget_vertical?@VARS@styles=
[mouseover_color]=3D000000&styles[hover_color]=3DFFFFFF&styles[background=
]=3DFFFFFF&styles[num_jobs]=3D6&styles[border_type]=3DSolid&styles[title_=
color]=3DE50066&styles[color]=3DE50066&styles[border_color]=3D000000&styl=
es[width]=3D160&styles[hover_background]=3D000000&referring_site_id=3D&fi=
lter=3D&height=3D587&width=3D160\"\nmarginwidth=3D\"0\" =
marginheight=3D\"0\" vspace=3D\"0\" hspace=3D\"0\" =
allowtransparency=3D\"true\" frameborder=3D\"0\"  scrolling=3D\"no\" =
height=3D\"587\" width=3D\"160\">\n</iframe>\n";=0A=
        if (window.JC_multi_widget) {=0A=
          var replacement=3D"multi_widget=3Dtrue"=0A=
          if (!JC_iframe.match(/@VARS@"/)) {=0A=
            replacement=3Dreplacement+"&"=0A=
          }=0A=
    	    JC_iframe=3DJC_iframe.replace(/@VARS@/,replacement);=0A=
        } else {=0A=
    	    JC_iframe=3DJC_iframe.replace(/@VARS@/,"");        =0A=
        }=0A=
    	  var JC_multi_widget =3D true;=0A=
        document.write(JC_iframe);=0A=

------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://103bees.com/bees/?bee=5671&fid=8192

=0A=
					function set_103Cookie(cookie_val)=0A=
					{=0A=
						var date =3D new Date();=0A=
						date.setTime(date.getTime() + (30 * 60 * 1000));=0A=
						document.cookie =3D "103bees=3D" + cookie_val + "; expires=3D" + =
date.toGMTString() + "; path=3D/";=0A=
					}=0A=
					=0A=
					function get_103Cookie()=0A=
					{=0A=
						var nameEQ =3D "103bees=3D";=0A=
						var ca =3D document.cookie.split(';');=0A=
						for(var i=3D0;i < ca.length;i++)=0A=
						{=0A=
							var c =3D ca[i];=0A=
							while (c.charAt(0) =3D=3D ' ') =0A=
								c =3D c.substring(1,c.length);=0A=
								=0A=
							if (c.indexOf(nameEQ) =3D=3D 0)=0A=
								return c.substring(nameEQ.length,c.length);=0A=
						}=0A=
						return null;=0A=
					}=0A=
																=0A=
					if(get_103Cookie() =3D=3D null)=0A=
					{=0A=
						url =3D =
'http://103bees.com/beehive/collector.php?bee=3D5671&amp;fid=3D8192&amp;r=
ef=3D' + encodeURIComponent(document.referrer) + '&amp;req=3D' + =
encodeURIComponent(document.URL);=0A=
						document.write('<img src=3D"' + url + '" width=3D"0" height=3D"0" =
alt=3D"" />');=0A=
						set_103Cookie(encodeURIComponent(document.referrer));=0A=
					}=0A=
				
------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://13043.hittail.com/mlt.js

if(!(D('hittail_ok'))){v=3Ddocument.referrer;Z=3De(document.location.href=
);if(Z!=3De(v)&&(v!=3D'')){if(J(v)){B=3DP(v);document.write('<img =
src=3D"http://tracking.hittail.com/mlt.png?ref=3D'+escape(v)+'&kw=3D'+B+'=
&eng=3D'+o(v)+'&p=3D'+I(v)+'&n=3D'+r(B)+'" width=3D"1" =
height=3D"1"/>');}}F('hittail_ok','1','','/',document.domain,'');}functio=
n J(f){var c=3Dtrue;var g=3Dnew =
Array("http://private.","http://internal.","http://intranet.","login=3D",=
"/login","login.","logon=3D","/logon","logon.","/signin","signin=3D","sig=
nin.","signon","/admin/","mail.","/mail/","/email/","webmail","mailbox","=
https://","cache:","http://www.blogger.com","http://localhost","http://cl=
ient.","http://docs.","http://timebase.","http://www2.blogger.","http://w=
ww.typepad.com/t/app/","http://www.typepad.com/t/comments","http://blocke=
dReferrer", =
"blockedReferrer");for(i=3D0;i<g.length;i++){if(f.search(g[i])> =
-1){c=3Dfalse;return c;}}var =
m=3D/https?:\/\/(www\.|\d+\.)?hittail\.com/;var =
j=3D/https?:\/\/(www\.|\d+\.)?mylongtail\.com/;if(f.search(m)> =
-1||f.search(j)> -1){c=3Dfalse;}return c;};function K(l){return =
unescape(l.replace(/\+/g," "));};function o(url){var =
n=3D/(http:\/\/)([^\/]*?)(\/)/;n.test(url);Y=3DRegExp.$2;return =
Y;};function P(url){var =
Q=3D/(\?|&|&amp;|;){1}(q|p|query|t|w|search|as_q|wd){1}=3D(.[^&=3D]*)=3D?=
/i;Q.test(url);B=3DK(RegExp.$3);if(B.indexOf('cache:')>=3D0||B.indexOf('h=
ttp://')>=3D0|| !isNaN(B)){B=3D'';}else{B=3DM(B);}return B;};function =
M(l){l=3Dl.replace(/[^\w #\.\-^\u00c0-\u00ff]/g,'');return l;};function =
I(url){p=3D0;U=3D/\.google\./;if(U.test(url)){t=3D/google(.*?)(start=3D)(=
[0-9]+)/;t.test(url);p=3DRegExp.$3;if(p!=3D''){p=3Dp/10;}else{p=3D1;}}if(=
p=3D=3D0||p=3D=3D''){R=3D/\.yahoo\./;if(R.test(url)){C=3D/yahoo(.*?)b=3D(=
[0-9]+)/;C.test(url);p=3DRegExp.$2;if(p!=3D''){p=3D(p-1)/10+1;}else{p=3D1=
;}}}if(p=3D=3D0||p=3D=3D''){k=3D/msn|live\.com/;if(k.test(url)){A=3D/msn|=
live\.com(.*?)(\?|&)first=3D([0-9]+)/;A.test(url);p=3DRegExp.$3;if(p!=3D'=
'){p=3D(p-1)/10+1;}else{p=3D1;}}}if(p=3D=3D0||p=3D=3D''){k=3D/ask\.com/;i=
f(k.test(url)){G=3D/ask(.*?)(\?|&)page=3D([0-9]+)/;G.test(url);p=3DRegExp=
.$3;if(p!=3D''){p=3D(p-1)/10;}else{p=3D1;}}}return p;};function =
r(l){l=3Dl.replace(/^\s+|\s+$/g,'');var =
V=3Dl.split(/\s/);w=3DV.length;return w;};function =
F(name,value,expires,T,domain,L){var =
O=3Dname+"=3D"+escape(value)+((T)?"; path=3D"+T:"")+((domain)?"; =
domain=3D"+domain:"")+((L)?"; secure":"");document.cookie=3DO;};function =
D(name){var X=3Ddocument.cookie;var prefix=3Dname+"=3D";var =
d=3DX.indexOf("; "+prefix);if(d=3D=3D =
-1){d=3DX.indexOf(prefix);if(d!=3D0)return null;}else d+=3D2;var =
H=3Ddocument.cookie.indexOf(";",d);if(H=3D=3D -1)H=3DX.length;return =
unescape(X.substring(d+prefix.length,H));};function e(url){var =
d,H;d=3Durl.indexOf('//')+2;if(url.indexOf('/',8)){H=3Durl.indexOf('/',8)=
;}else{H=3Durl.length}return url.substring(d,H);}
------=_NextPart_000_0000_01C832C7.14D3E190
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.google-analytics.com/urchin.js

//-- Google Analytics Urchin Module=0A=
//-- Copyright 2007 Google, All Rights Reserved.=0A=
=0A=
//-- Urchin On Demand Settings ONLY=0A=
var _uacct=3D"";			// set up the Urchin Account=0A=
var _userv=3D1;			// service mode (0=3Dlocal,1=3Dremote,2=3Dboth)=0A=
=0A=
//-- UTM User Settings=0A=
var _ufsc=3D1;			// set client info flag (1=3Don|0=3Doff)=0A=
var _udn=3D"auto";		// (auto|none|domain) set the domain name for cookies=0A=
var _uhash=3D"on";		// (on|off) unique domain hash for cookies=0A=
var _utimeout=3D"1800";   	// set the inactive session timeout in seconds=0A=
var _ugifpath=3D"/__utm.gif";	// set the web path to the __utm.gif file=0A=
var _utsp=3D"|";			// transaction field separator=0A=
var _uflash=3D1;			// set flash version detect option (1=3Don|0=3Doff)=0A=
var _utitle=3D1;			// set the document title detect option =
(1=3Don|0=3Doff)=0A=
var _ulink=3D0;			// enable linker functionality (1=3Don|0=3Doff)=0A=
var _uanchor=3D0;			// enable use of anchors for campaign =
(1=3Don|0=3Doff)=0A=
var _utcp=3D"/";			// the cookie path for tracking=0A=
var _usample=3D100;		// The sampling % of visitors to track (1-100).=0A=
=0A=
//-- UTM Campaign Tracking Settings=0A=
var _uctm=3D1;			// set campaign tracking module (1=3Don|0=3Doff)=0A=
var _ucto=3D"15768000";		// set timeout in seconds (6 month default)=0A=
var _uccn=3D"utm_campaign";	// name=0A=
var _ucmd=3D"utm_medium";		// medium (cpc|cpm|link|email|organic)=0A=
var _ucsr=3D"utm_source";		// source=0A=
var _uctr=3D"utm_term";		// term/keyword=0A=
var _ucct=3D"utm_content";	// content=0A=
var _ucid=3D"utm_id";		// id number=0A=
var _ucno=3D"utm_nooverride";	// don't override=0A=
=0A=
//-- Auto/Organic Sources and Keywords=0A=
var _uOsr=3Dnew Array();=0A=
var _uOkw=3Dnew Array();=0A=
_uOsr[0]=3D"google";	_uOkw[0]=3D"q";=0A=
_uOsr[1]=3D"yahoo";	_uOkw[1]=3D"p";=0A=
_uOsr[2]=3D"msn";		_uOkw[2]=3D"q";=0A=
_uOsr[3]=3D"aol";		_uOkw[3]=3D"query";=0A=
_uOsr[4]=3D"aol";		_uOkw[4]=3D"encquery";=0A=
_uOsr[5]=3D"lycos";	_uOkw[5]=3D"query";=0A=
_uOsr[6]=3D"ask";		_uOkw[6]=3D"q";=0A=
_uOsr[7]=3D"altavista";	_uOkw[7]=3D"q";=0A=
_uOsr[8]=3D"netscape";	_uOkw[8]=3D"query";=0A=
_uOsr[9]=3D"cnn";	_uOkw[9]=3D"query";=0A=
_uOsr[10]=3D"looksmart";	_uOkw[10]=3D"qt";=0A=
_uOsr[11]=3D"about";	_uOkw[11]=3D"terms";=0A=
_uOsr[12]=3D"mamma";	_uOkw[12]=3D"query";=0A=
_uOsr[13]=3D"alltheweb";	_uOkw[13]=3D"q";=0A=
_uOsr[14]=3D"gigablast";	_uOkw[14]=3D"q";=0A=
_uOsr[15]=3D"voila";	_uOkw[15]=3D"rdata";=0A=
_uOsr[16]=3D"virgilio";	_uOkw[16]=3D"qs";=0A=
_uOsr[17]=3D"live";	_uOkw[17]=3D"q";=0A=
_uOsr[18]=3D"baidu";	_uOkw[18]=3D"wd";=0A=
_uOsr[19]=3D"alice";	_uOkw[19]=3D"qs";=0A=
_uOsr[20]=3D"yandex";	_uOkw[20]=3D"text";=0A=
_uOsr[21]=3D"najdi";	_uOkw[21]=3D"q";=0A=
_uOsr[22]=3D"aol";	_uOkw[22]=3D"q";=0A=
_uOsr[23]=3D"club-internet"; _uOkw[23]=3D"q";=0A=
_uOsr[24]=3D"mama";	_uOkw[24]=3D"query";=0A=
_uOsr[25]=3D"seznam";	_uOkw[25]=3D"q";=0A=
_uOsr[26]=3D"search";	_uOkw[26]=3D"q";=0A=
_uOsr[27]=3D"szukaj";	_uOkw[27]=3D"szukaj";=0A=
_uOsr[28]=3D"szukaj";	_uOkw[28]=3D"qt";=0A=
_uOsr[29]=3D"netsprint";	_uOkw[29]=3D"q";=0A=
_uOsr[30]=3D"google.interia";	_uOkw[30]=3D"q";=0A=
_uOsr[31]=3D"szukacz";	_uOkw[31]=3D"q";=0A=
_uOsr[32]=3D"yam";	_uOkw[32]=3D"k";=0A=
_uOsr[33]=3D"pchome";	_uOkw[33]=3D"q";=0A=
=0A=
=0A=
//-- Auto/Organic Keywords to Ignore=0A=
var _uOno=3Dnew Array();=0A=
//_uOno[0]=3D"urchin";=0A=
//_uOno[1]=3D"urchin.com";=0A=
//_uOno[2]=3D"www.urchin.com";=0A=
=0A=
//-- Referral domains to Ignore=0A=
var _uRno=3Dnew Array();=0A=
//_uRno[0]=3D".urchin.com";=0A=
=0A=
//-- **** Don't modify below this point ***=0A=
var =
_uff,_udh,_udt,_ubl=3D0,_udo=3D"",_uu,_ufns=3D0,_uns=3D0,_ur=3D"-",_ufno=3D=
0,_ust=3D0,_ubd=3Ddocument,_udl=3D_ubd.location,_udlh=3D"",_uwv=3D"1";=0A=
var _ugifpath2=3D"http://www.google-analytics.com/__utm.gif";=0A=
if (_udl.hash) _udlh=3D_udl.href.substring(_udl.href.indexOf('#'));=0A=
if (_udl.protocol=3D=3D"https:") =
_ugifpath2=3D"https://ssl.google-analytics.com/__utm.gif";=0A=
if (!_utcp || _utcp=3D=3D"") _utcp=3D"/";=0A=
function urchinTracker(page) {=0A=
 if (_udl.protocol=3D=3D"file:") return;=0A=
 if (_uff && (!page || page=3D=3D"")) return;=0A=
 var a,b,c,xx,v,z,k,x=3D"",s=3D"",f=3D0;=0A=
 var nx=3D" expires=3D"+_uNx()+";";=0A=
 var dc=3D_ubd.cookie;=0A=
 _udh=3D_uDomain();=0A=
 if (!_uVG()) return;=0A=
 _uu=3DMath.round(Math.random()*2147483647);=0A=
 _udt=3Dnew Date();=0A=
 _ust=3DMath.round(_udt.getTime()/1000);=0A=
 a=3Ddc.indexOf("__utma=3D"+_udh);=0A=
 b=3Ddc.indexOf("__utmb=3D"+_udh);=0A=
 c=3Ddc.indexOf("__utmc=3D"+_udh);=0A=
 if (_udn && _udn!=3D"") { _udo=3D" domain=3D"+_udn+";"; }=0A=
 if (_utimeout && _utimeout!=3D"") {=0A=
  x=3Dnew Date(_udt.getTime()+(_utimeout*1000));=0A=
  x=3D" expires=3D"+x.toGMTString()+";";=0A=
 }=0A=
 if (_ulink) {=0A=
  if (_uanchor && _udlh && _udlh!=3D"") s=3D_udlh+"&";=0A=
  s+=3D_udl.search;=0A=
  if(s && s!=3D"" && s.indexOf("__utma=3D")>=3D0) {=0A=
   if (!(_uIN(a=3D_uGC(s,"__utma=3D","&")))) a=3D"-";=0A=
   if (!(_uIN(b=3D_uGC(s,"__utmb=3D","&")))) b=3D"-";=0A=
   if (!(_uIN(c=3D_uGC(s,"__utmc=3D","&")))) c=3D"-";=0A=
   v=3D_uGC(s,"__utmv=3D","&");=0A=
   z=3D_uGC(s,"__utmz=3D","&");=0A=
   k=3D_uGC(s,"__utmk=3D","&");=0A=
   xx=3D_uGC(s,"__utmx=3D","&");=0A=
   if ((k*1) !=3D ((_uHash(a+b+c+xx+z+v)*1)+(_udh*1))) =
{_ubl=3D1;a=3D"-";b=3D"-";c=3D"-";xx=3D"-";z=3D"-";v=3D"-";}=0A=
   if (a!=3D"-" && b!=3D"-" && c!=3D"-") f=3D1;=0A=
   else if(a!=3D"-") f=3D2;=0A=
  }=0A=
 }=0A=
 if(f=3D=3D1) {=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+b+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+c+"; path=3D"+_utcp+";"+_udo;=0A=
 } else if (f=3D=3D2) {=0A=
  a=3D_uFixA(s,"&",_ust);=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A=
  _ufns=3D1;=0A=
 } else if (a>=3D0 && b>=3D0 && c>=3D0) {=0A=
  _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A=
 } else {=0A=
  if (a>=3D0) a=3D_uFixA(_ubd.cookie,";",_ust);=0A=
  else a=3D_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1";=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A=
  _ufns=3D1;=0A=
 }=0A=
 if (_ulink && xx && xx!=3D"" && xx!=3D"-") {=0A=
   xx=3D_uUES(xx);=0A=
   if (xx.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmx=3D"+xx+"; =
path=3D"+_utcp+";"+nx+_udo;=0A=
 }=0A=
 if (_ulink && v && v!=3D"" && v!=3D"-") {=0A=
  v=3D_uUES(v);=0A=
  if (v.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmv=3D"+v+"; =
path=3D"+_utcp+";"+nx+_udo;=0A=
 }=0A=
 _uInfo(page);=0A=
 _ufns=3D0;=0A=
 _ufno=3D0;=0A=
 if (!page || page=3D=3D"") _uff=3D1;=0A=
}=0A=
function _uInfo(page) {=0A=
 var p,s=3D"",dm=3D"",pg=3D_udl.pathname+_udl.search;=0A=
 if (page && page!=3D"") pg=3D_uES(page,1);=0A=
 _ur=3D_ubd.referrer;=0A=
 if (!_ur || _ur=3D=3D"") { _ur=3D"-"; }=0A=
 else {=0A=
  dm=3D_ubd.domain;=0A=
  if(_utcp && _utcp!=3D"/") dm+=3D_utcp;=0A=
  p=3D_ur.indexOf(dm);=0A=
  if ((p>=3D0) && (p<=3D8)) { _ur=3D"0"; }=0A=
  if (_ur.indexOf("[")=3D=3D0 && =
_ur.lastIndexOf("]")=3D=3D(_ur.length-1)) { _ur=3D"-"; }=0A=
 }=0A=
 s+=3D"&utmn=3D"+_uu;=0A=
 if (_ufsc) s+=3D_uBInfo();=0A=
 if (_uctm) s+=3D_uCInfo();=0A=
 if (_utitle && _ubd.title && _ubd.title!=3D"") =
s+=3D"&utmdt=3D"+_uES(_ubd.title);=0A=
 if (_udl.hostname && _udl.hostname!=3D"") =
s+=3D"&utmhn=3D"+_uES(_udl.hostname);=0A=
 s+=3D"&utmr=3D"+_ur;=0A=
 s+=3D"&utmp=3D"+pg;=0A=
 if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
  var i=3Dnew Image(1,1);=0A=
  i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
  i.onload=3Dfunction() {_uVoid();}=0A=
 }=0A=
 if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
  var i2=3Dnew Image(1,1);=0A=
  =
i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+=
_uGCS();=0A=
  i2.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
 return;=0A=
}=0A=
function _uVoid() { return; }=0A=
function _uCInfo() {=0A=
 if (!_ucto || _ucto=3D=3D"") { _ucto=3D"15768000"; }=0A=
 if (!_uVG()) return;=0A=
 var =
c=3D"",t=3D"-",t2=3D"-",t3=3D"-",o=3D0,cs=3D0,cn=3D0,i=3D0,z=3D"-",s=3D""=
;=0A=
 if (_uanchor && _udlh && _udlh!=3D"") s=3D_udlh+"&";=0A=
 s+=3D_udl.search;=0A=
 var x=3Dnew Date(_udt.getTime()+(_ucto*1000));=0A=
 var dc=3D_ubd.cookie;=0A=
 x=3D" expires=3D"+x.toGMTString()+";";=0A=
 if (_ulink && !_ubl) {=0A=
  z=3D_uUES(_uGC(s,"__utmz=3D","&"));=0A=
  if (z!=3D"-" && z.indexOf(";")=3D=3D-1) { =
_ubd.cookie=3D"__utmz=3D"+z+"; path=3D"+_utcp+";"+x+_udo; return ""; }=0A=
 }=0A=
 z=3Ddc.indexOf("__utmz=3D"+_udh);=0A=
 if (z>-1) { z=3D_uGC(dc,"__utmz=3D"+_udh,";"); }=0A=
 else { z=3D"-"; }=0A=
 t=3D_uGC(s,_ucid+"=3D","&");=0A=
 t2=3D_uGC(s,_ucsr+"=3D","&");=0A=
 t3=3D_uGC(s,"gclid=3D","&");=0A=
 if ((t!=3D"-" && t!=3D"") || (t2!=3D"-" && t2!=3D"") || (t3!=3D"-" && =
t3!=3D"")) {=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"utmcid=3D"+_uEC(t);=0A=
  if (t2!=3D"-" && t2!=3D"") { if (c !=3D "") c+=3D"|"; =
c+=3D"utmcsr=3D"+_uEC(t2); }=0A=
  if (t3!=3D"-" && t3!=3D"") { if (c !=3D "") c+=3D"|"; =
c+=3D"utmgclid=3D"+_uEC(t3); }=0A=
  t=3D_uGC(s,_uccn+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmccn=3D"+_uEC(t);=0A=
  else c+=3D"|utmccn=3D(not+set)";=0A=
  t=3D_uGC(s,_ucmd+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmcmd=3D"+_uEC(t);=0A=
  else  c+=3D"|utmcmd=3D(not+set)";=0A=
  t=3D_uGC(s,_uctr+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmctr=3D"+_uEC(t);=0A=
  else { t=3D_uOrg(1); if (t!=3D"-" && t!=3D"") =
c+=3D"|utmctr=3D"+_uEC(t); }=0A=
  t=3D_uGC(s,_ucct+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmcct=3D"+_uEC(t);=0A=
  t=3D_uGC(s,_ucno+"=3D","&");=0A=
  if (t=3D=3D"1") o=3D1;=0A=
  if (z!=3D"-" && o=3D=3D1) return "";=0A=
 }=0A=
 if (c=3D=3D"-" || c=3D=3D"") { c=3D_uOrg(); if (z!=3D"-" && =
_ufno=3D=3D1)  return ""; }=0A=
 if (c=3D=3D"-" || c=3D=3D"") { if (_ufns=3D=3D1)  c=3D_uRef(); if =
(z!=3D"-" && _ufno=3D=3D1)  return ""; }=0A=
 if (c=3D=3D"-" || c=3D=3D"") {=0A=
  if (z=3D=3D"-" && _ufns=3D=3D1) { =
c=3D"utmccn=3D(direct)|utmcsr=3D(direct)|utmcmd=3D(none)"; }=0A=
  if (c=3D=3D"-" || c=3D=3D"") return "";=0A=
 }=0A=
 if (z!=3D"-") {=0A=
  i=3Dz.indexOf(".");=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  t=3Dz.substring(i+1,z.length);=0A=
  if (t.toLowerCase()=3D=3Dc.toLowerCase()) cs=3D1;=0A=
  t=3Dz.substring(0,i);=0A=
  if ((i=3Dt.lastIndexOf(".")) > -1) {=0A=
   t=3Dt.substring(i+1,t.length);=0A=
   cn=3D(t*1);=0A=
  }=0A=
 }=0A=
 if (cs=3D=3D0 || _ufns=3D=3D1) {=0A=
  t=3D_uGC(dc,"__utma=3D"+_udh,";");=0A=
  if ((i=3Dt.lastIndexOf(".")) > 9) {=0A=
   _uns=3Dt.substring(i+1,t.length);=0A=
   _uns=3D(_uns*1);=0A=
  }=0A=
  cn++;=0A=
  if (_uns=3D=3D0) _uns=3D1;=0A=
  _ubd.cookie=3D"__utmz=3D"+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; =
path=3D"+_utcp+"; "+x+_udo;=0A=
 }=0A=
 if (cs=3D=3D0 || _ufns=3D=3D1) return "&utmcn=3D1";=0A=
 else return "&utmcr=3D1";=0A=
}=0A=
function _uRef() {=0A=
 if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A=
 var i=3D0,h,k,n;=0A=
 if ((i=3D_ur.indexOf("://"))<0) return "";=0A=
 h=3D_ur.substring(i+3,_ur.length);=0A=
 if (h.indexOf("/") > -1) {=0A=
  k=3Dh.substring(h.indexOf("/"),h.length);=0A=
  if (k.indexOf("?") > -1) k=3Dk.substring(0,k.indexOf("?"));=0A=
  h=3Dh.substring(0,h.indexOf("/"));=0A=
 }=0A=
 h=3Dh.toLowerCase();=0A=
 n=3Dh;=0A=
 if ((i=3Dn.indexOf(":")) > -1) n=3Dn.substring(0,i);=0A=
 for (var ii=3D0;ii<_uRno.length;ii++) {=0A=
  if ((i=3Dn.indexOf(_uRno[ii].toLowerCase())) > -1 && =
n.length=3D=3D(i+_uRno[ii].length)) { _ufno=3D1; break; }=0A=
 }=0A=
 if (h.indexOf("www.")=3D=3D0) h=3Dh.substring(4,h.length);=0A=
 return =
"utmccn=3D(referral)|utmcsr=3D"+_uEC(h)+"|"+"utmcct=3D"+_uEC(k)+"|utmcmd=3D=
referral";=0A=
}=0A=
function _uOrg(t) {=0A=
 if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A=
 var i=3D0,h,k;=0A=
 if ((i=3D_ur.indexOf("://")) < 0) return "";=0A=
 h=3D_ur.substring(i+3,_ur.length);=0A=
 if (h.indexOf("/") > -1) {=0A=
  h=3Dh.substring(0,h.indexOf("/"));=0A=
 }=0A=
 for (var ii=3D0;ii<_uOsr.length;ii++) {=0A=
  if (h.toLowerCase().indexOf(_uOsr[ii].toLowerCase()) > -1) {=0A=
   if ((i=3D_ur.indexOf("?"+_uOkw[ii]+"=3D")) > -1 || =
(i=3D_ur.indexOf("&"+_uOkw[ii]+"=3D")) > -1) {=0A=
    k=3D_ur.substring(i+_uOkw[ii].length+2,_ur.length);=0A=
    if ((i=3Dk.indexOf("&")) > -1) k=3Dk.substring(0,i);=0A=
    for (var yy=3D0;yy<_uOno.length;yy++) {=0A=
     if (_uOno[yy].toLowerCase()=3D=3Dk.toLowerCase()) { _ufno=3D1; =
break; }=0A=
    }=0A=
    if (t) return _uEC(k);=0A=
    else return =
"utmccn=3D(organic)|utmcsr=3D"+_uEC(_uOsr[ii])+"|"+"utmctr=3D"+_uEC(k)+"|=
utmcmd=3Dorganic";=0A=
   }=0A=
  }=0A=
 }=0A=
 return "";=0A=
}=0A=
function _uBInfo() {=0A=
 var sr=3D"-",sc=3D"-",ul=3D"-",fl=3D"-",cs=3D"-",je=3D1;=0A=
 var n=3Dnavigator;=0A=
 if (self.screen) {=0A=
  sr=3Dscreen.width+"x"+screen.height;=0A=
  sc=3Dscreen.colorDepth+"-bit";=0A=
 } else if (self.java) {=0A=
  var j=3Djava.awt.Toolkit.getDefaultToolkit();=0A=
  var s=3Dj.getScreenSize();=0A=
  sr=3Ds.width+"x"+s.height;=0A=
 }=0A=
 if (n.language) { ul=3Dn.language.toLowerCase(); }=0A=
 else if (n.browserLanguage) { ul=3Dn.browserLanguage.toLowerCase(); }=0A=
 je=3Dn.javaEnabled()?1:0;=0A=
 if (_uflash) fl=3D_uFlash();=0A=
 if (_ubd.characterSet) cs=3D_uES(_ubd.characterSet);=0A=
 else if (_ubd.charset) cs=3D_uES(_ubd.charset);=0A=
 return =
"&utmcs=3D"+cs+"&utmsr=3D"+sr+"&utmsc=3D"+sc+"&utmul=3D"+ul+"&utmje=3D"+j=
e+"&utmfl=3D"+fl;=0A=
}=0A=
function __utmSetTrans() {=0A=
 var e;=0A=
 if (_ubd.getElementById) e=3D_ubd.getElementById("utmtrans");=0A=
 else if (_ubd.utmform && _ubd.utmform.utmtrans) =
e=3D_ubd.utmform.utmtrans;=0A=
 if (!e) return;=0A=
 var l=3De.value.split("UTM:");=0A=
 var i,i2,c;=0A=
 if (_userv=3D=3D0 || _userv=3D=3D2) i=3Dnew Array();=0A=
 if (_userv=3D=3D1 || _userv=3D=3D2) { i2=3Dnew Array(); c=3D_uGCS(); }=0A=
=0A=
 for (var ii=3D0;ii<l.length;ii++) {=0A=
  l[ii]=3D_uTrim(l[ii]);=0A=
  if (l[ii].charAt(0)!=3D'T' && l[ii].charAt(0)!=3D'I') continue;=0A=
  var r=3DMath.round(Math.random()*2147483647);=0A=
  if (!_utsp || _utsp=3D=3D"") _utsp=3D"|";=0A=
  var f=3Dl[ii].split(_utsp),s=3D"";=0A=
  if (f[0].charAt(0)=3D=3D'T') {=0A=
   s=3D"&utmt=3Dtran"+"&utmn=3D"+r;=0A=
   f[1]=3D_uTrim(f[1]); if(f[1]&&f[1]!=3D"") =
s+=3D"&utmtid=3D"+_uES(f[1]);=0A=
   f[2]=3D_uTrim(f[2]); if(f[2]&&f[2]!=3D"") =
s+=3D"&utmtst=3D"+_uES(f[2]);=0A=
   f[3]=3D_uTrim(f[3]); if(f[3]&&f[3]!=3D"") =
s+=3D"&utmtto=3D"+_uES(f[3]);=0A=
   f[4]=3D_uTrim(f[4]); if(f[4]&&f[4]!=3D"") =
s+=3D"&utmttx=3D"+_uES(f[4]);=0A=
   f[5]=3D_uTrim(f[5]); if(f[5]&&f[5]!=3D"") =
s+=3D"&utmtsp=3D"+_uES(f[5]);=0A=
   f[6]=3D_uTrim(f[6]); if(f[6]&&f[6]!=3D"") =
s+=3D"&utmtci=3D"+_uES(f[6]);=0A=
   f[7]=3D_uTrim(f[7]); if(f[7]&&f[7]!=3D"") =
s+=3D"&utmtrg=3D"+_uES(f[7]);=0A=
   f[8]=3D_uTrim(f[8]); if(f[8]&&f[8]!=3D"") =
s+=3D"&utmtco=3D"+_uES(f[8]);=0A=
  } else {=0A=
   s=3D"&utmt=3Ditem"+"&utmn=3D"+r;=0A=
   f[1]=3D_uTrim(f[1]); if(f[1]&&f[1]!=3D"") =
s+=3D"&utmtid=3D"+_uES(f[1]);=0A=
   f[2]=3D_uTrim(f[2]); if(f[2]&&f[2]!=3D"") =
s+=3D"&utmipc=3D"+_uES(f[2]);=0A=
   f[3]=3D_uTrim(f[3]); if(f[3]&&f[3]!=3D"") =
s+=3D"&utmipn=3D"+_uES(f[3]);=0A=
   f[4]=3D_uTrim(f[4]); if(f[4]&&f[4]!=3D"") =
s+=3D"&utmiva=3D"+_uES(f[4]);=0A=
   f[5]=3D_uTrim(f[5]); if(f[5]&&f[5]!=3D"") =
s+=3D"&utmipr=3D"+_uES(f[5]);=0A=
   f[6]=3D_uTrim(f[6]); if(f[6]&&f[6]!=3D"") =
s+=3D"&utmiqt=3D"+_uES(f[6]);=0A=
  }=0A=
  if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
   i[ii]=3Dnew Image(1,1);=0A=
   i[ii].src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
   i[ii].onload=3Dfunction() { _uVoid(); }=0A=
  }=0A=
  if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
   i2[ii]=3Dnew Image(1,1);=0A=
   =
i2[ii].src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D=
"+c;=0A=
   i2[ii].onload=3Dfunction() { _uVoid(); }=0A=
  }=0A=
 }=0A=
 return;=0A=
}=0A=
function _uFlash() {=0A=
 var f=3D"-",n=3Dnavigator;=0A=
 if (n.plugins && n.plugins.length) {=0A=
  for (var ii=3D0;ii<n.plugins.length;ii++) {=0A=
   if (n.plugins[ii].name.indexOf('Shockwave Flash')!=3D-1) {=0A=
    f=3Dn.plugins[ii].description.split('Shockwave Flash ')[1];=0A=
    break;=0A=
   }=0A=
  }=0A=
 } else if (window.ActiveXObject) {=0A=
  for (var ii=3D10;ii>=3D2;ii--) {=0A=
   try {=0A=
    var fl=3Deval("new =
ActiveXObject('ShockwaveFlash.ShockwaveFlash."+ii+"');");=0A=
    if (fl) { f=3Dii + '.0'; break; }=0A=
   }=0A=
   catch(e) {}=0A=
  }=0A=
 }=0A=
 return f;=0A=
}=0A=
function __utmLinker(l,h) {=0A=
 if (!_ulink) return;=0A=
 var p,k,a=3D"-",b=3D"-",c=3D"-",x=3D"-",z=3D"-",v=3D"-";=0A=
 var dc=3D_ubd.cookie;=0A=
 if (!l || l=3D=3D"") return;=0A=
 var iq =3D l.indexOf("?"); =0A=
 var ih =3D l.indexOf("#"); =0A=
 if (dc) {=0A=
  a=3D_uES(_uGC(dc,"__utma=3D"+_udh,";"));=0A=
  b=3D_uES(_uGC(dc,"__utmb=3D"+_udh,";"));=0A=
  c=3D_uES(_uGC(dc,"__utmc=3D"+_udh,";"));=0A=
  x=3D_uES(_uGC(dc,"__utmx=3D"+_udh,";"));=0A=
  z=3D_uES(_uGC(dc,"__utmz=3D"+_udh,";"));=0A=
  v=3D_uES(_uGC(dc,"__utmv=3D"+_udh,";"));=0A=
  k=3D(_uHash(a+b+c+x+z+v)*1)+(_udh*1);=0A=
  =
p=3D"__utma=3D"+a+"&__utmb=3D"+b+"&__utmc=3D"+c+"&__utmx=3D"+x+"&__utmz=3D=
"+z+"&__utmv=3D"+v+"&__utmk=3D"+k;=0A=
 }=0A=
 if (p) {=0A=
  if (h && ih>-1) return;=0A=
  if (h) { _udl.href=3Dl+"#"+p; }=0A=
  else {=0A=
   if (iq=3D=3D-1 && ih=3D=3D-1) _udl.href=3Dl+"?"+p;=0A=
   else if (ih=3D=3D-1) _udl.href=3Dl+"&"+p;=0A=
   else if (iq=3D=3D-1) =
_udl.href=3Dl.substring(0,ih-1)+"?"+p+l.substring(ih);=0A=
   else _udl.href=3Dl.substring(0,ih-1)+"&"+p+l.substring(ih);=0A=
  }=0A=
 } else { _udl.href=3Dl; }=0A=
}=0A=
function __utmLinkPost(f,h) {=0A=
 if (!_ulink) return;=0A=
 var p,k,a=3D"-",b=3D"-",c=3D"-",x=3D"-",z=3D"-",v=3D"-";=0A=
 var dc=3D_ubd.cookie;=0A=
 if (!f || !f.action) return;=0A=
 var iq =3D f.action.indexOf("?"); =0A=
 var ih =3D f.action.indexOf("#"); =0A=
 if (dc) {=0A=
  a=3D_uES(_uGC(dc,"__utma=3D"+_udh,";"));=0A=
  b=3D_uES(_uGC(dc,"__utmb=3D"+_udh,";"));=0A=
  c=3D_uES(_uGC(dc,"__utmc=3D"+_udh,";"));=0A=
  x=3D_uES(_uGC(dc,"__utmx=3D"+_udh,";"));=0A=
  z=3D_uES(_uGC(dc,"__utmz=3D"+_udh,";"));=0A=
  v=3D_uES(_uGC(dc,"__utmv=3D"+_udh,";"));=0A=
  k=3D(_uHash(a+b+c+x+z+v)*1)+(_udh*1);=0A=
  =
p=3D"__utma=3D"+a+"&__utmb=3D"+b+"&__utmc=3D"+c+"&__utmx=3D"+x+"&__utmz=3D=
"+z+"&__utmv=3D"+v+"&__utmk=3D"+k;=0A=
 }=0A=
 if (p) {=0A=
  if (h && ih>-1) return;=0A=
  if (h) { f.action+=3D"#"+p; }=0A=
  else {=0A=
   if (iq=3D=3D-1 && ih=3D=3D-1) f.action+=3D"?"+p;=0A=
   else if (ih=3D=3D-1) f.action+=3D"&"+p;=0A=
   else if (iq=3D=3D-1) =
f.action=3Df.action.substring(0,ih-1)+"?"+p+f.action.substring(ih);=0A=
   else =
f.action=3Df.action.substring(0,ih-1)+"&"+p+f.action.substring(ih);=0A=
  }=0A=
 }=0A=
 return;=0A=
}=0A=
function __utmSetVar(v) {=0A=
 if (!v || v=3D=3D"") return;=0A=
 if (!_udo || _udo =3D=3D "") {=0A=
  _udh=3D_uDomain();=0A=
  if (_udn && _udn!=3D"") { _udo=3D" domain=3D"+_udn+";"; }=0A=
 }=0A=
 if (!_uVG()) return;=0A=
 var r=3DMath.round(Math.random() * 2147483647);=0A=
 _ubd.cookie=3D"__utmv=3D"+_udh+"."+_uES(v)+"; path=3D"+_utcp+"; =
expires=3D"+_uNx()+";"+_udo;=0A=
 var s=3D"&utmt=3Dvar&utmn=3D"+r;=0A=
 if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
  var i=3Dnew Image(1,1);=0A=
  i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
  i.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
 if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
  var i2=3Dnew Image(1,1);=0A=
  =
i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+=
_uGCS();=0A=
  i2.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
}=0A=
function _uGCS() {=0A=
 var t,c=3D"",dc=3D_ubd.cookie;=0A=
 if ((t=3D_uGC(dc,"__utma=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utma=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmb=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmb=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmc=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmc=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmx=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmx=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmz=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmz=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmv=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmv=3D"+t+";");=0A=
 if (c.charAt(c.length-1)=3D=3D"+") c=3Dc.substring(0,c.length-1);=0A=
 return c;=0A=
}=0A=
function _uGC(l,n,s) {=0A=
 if (!l || l=3D=3D"" || !n || n=3D=3D"" || !s || s=3D=3D"") return "-";=0A=
 var i,i2,i3,c=3D"-";=0A=
 i=3Dl.indexOf(n);=0A=
 i3=3Dn.indexOf("=3D")+1;=0A=
 if (i > -1) {=0A=
  i2=3Dl.indexOf(s,i); if (i2 < 0) { i2=3Dl.length; }=0A=
  c=3Dl.substring((i+i3),i2);=0A=
 }=0A=
 return c;=0A=
}=0A=
function _uDomain() {=0A=
 if (!_udn || _udn=3D=3D"" || _udn=3D=3D"none") { _udn=3D""; return 1; }=0A=
 if (_udn=3D=3D"auto") {=0A=
  var d=3D_ubd.domain;=0A=
  if (d.substring(0,4)=3D=3D"www.") {=0A=
   d=3Dd.substring(4,d.length);=0A=
  }=0A=
  _udn=3Dd;=0A=
 }=0A=
 _udn =3D _udn.toLowerCase(); =0A=
 if (_uhash=3D=3D"off") return 1;=0A=
 return _uHash(_udn);=0A=
}=0A=
function _uHash(d) {=0A=
 if (!d || d=3D=3D"") return 1;=0A=
 var h=3D0,g=3D0;=0A=
 for (var i=3Dd.length-1;i>=3D0;i--) {=0A=
  var c=3DparseInt(d.charCodeAt(i));=0A=
  h=3D((h << 6) & 0xfffffff) + c + (c << 14);=0A=
  if ((g=3Dh & 0xfe00000)!=3D0) h=3D(h ^ (g >> 21));=0A=
 }=0A=
 return h;=0A=
}=0A=
function _uFixA(c,s,t) {=0A=
 if (!c || c=3D=3D"" || !s || s=3D=3D"" || !t || t=3D=3D"") return "-";=0A=
 var a=3D_uGC(c,"__utma=3D"+_udh,s);=0A=
 var lt=3D0,i=3D0;=0A=
 if ((i=3Da.lastIndexOf(".")) > 9) {=0A=
  _uns=3Da.substring(i+1,a.length);=0A=
  _uns=3D(_uns*1)+1;=0A=
  a=3Da.substring(0,i);=0A=
  if ((i=3Da.lastIndexOf(".")) > 7) {=0A=
   lt=3Da.substring(i+1,a.length);=0A=
   a=3Da.substring(0,i);=0A=
  }=0A=
  if ((i=3Da.lastIndexOf(".")) > 5) {=0A=
   a=3Da.substring(0,i);=0A=
  }=0A=
  a+=3D"."+lt+"."+t+"."+_uns;=0A=
 }=0A=
 return a;=0A=
}=0A=
function _uTrim(s) {=0A=
  if (!s || s=3D=3D"") return "";=0A=
  while ((s.charAt(0)=3D=3D' ') || (s.charAt(0)=3D=3D'\n') || =
(s.charAt(0,1)=3D=3D'\r')) s=3Ds.substring(1,s.length);=0A=
  while ((s.charAt(s.length-1)=3D=3D' ') || =
(s.charAt(s.length-1)=3D=3D'\n') || (s.charAt(s.length-1)=3D=3D'\r')) =
s=3Ds.substring(0,s.length-1);=0A=
  return s;=0A=
}=0A=
function _uEC(s) {=0A=
  var n=3D"";=0A=
  if (!s || s=3D=3D"") return "";=0A=
  for (var i=3D0;i<s.length;i++) {if (s.charAt(i)=3D=3D" ") n+=3D"+"; =
else n+=3Ds.charAt(i);}=0A=
  return n;=0A=
}=0A=
function __utmVisitorCode(f) {=0A=
 var r=3D0,t=3D0,i=3D0,i2=3D0,m=3D31;=0A=
 var a=3D_uGC(_ubd.cookie,"__utma=3D"+_udh,";");=0A=
 if ((i=3Da.indexOf(".",0))<0) return;=0A=
 if ((i2=3Da.indexOf(".",i+1))>0) r=3Da.substring(i+1,i2); else return =
"";  =0A=
 if ((i=3Da.indexOf(".",i2+1))>0) t=3Da.substring(i2+1,i); else return =
"";  =0A=
 if (f) {=0A=
  return r;=0A=
 } else {=0A=
  var c=3Dnew =
Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T'=
,'U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9');=0A=
  return =
c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r=
&7)<<2)+(t>>30&3)]+c[t>>25&m]+c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5=
&m]+c[t&m];=0A=
 }=0A=
}=0A=
function _uIN(n) {=0A=
 if (!n) return false;=0A=
 for (var i=3D0;i<n.length;i++) {=0A=
  var c=3Dn.charAt(i);=0A=
  if ((c<"0" || c>"9") && (c!=3D".")) return false;=0A=
 }=0A=
 return true;=0A=
}=0A=
function _uES(s,u) {=0A=
 if (typeof(encodeURIComponent) =3D=3D 'function') {=0A=
  if (u) return encodeURI(s);=0A=
  else return encodeURIComponent(s);=0A=
 } else {=0A=
  return escape(s);=0A=
 }=0A=
}=0A=
function _uUES(s) {=0A=
 if (typeof(decodeURIComponent) =3D=3D 'function') {=0A=
  return decodeURIComponent(s);=0A=
 } else {=0A=
  return unescape(s);=0A=
 }=0A=
}=0A=
function _uVG() {=0A=
 if((_udn.indexOf("www.google.") =3D=3D 0 || _udn.indexOf(".google.") =
=3D=3D 0 || _udn.indexOf("google.") =3D=3D 0) && _utcp=3D=3D'/' && =
_udn.indexOf("google.org")=3D=3D-1) {=0A=
  return false;=0A=
 }=0A=
 return true;=0A=
}=0A=
function _uSP() {=0A=
 var s=3D100;=0A=
 if (_usample) s=3D_usample;=0A=
 if(s>=3D100 || s<=3D0) return true;=0A=
 return ((__utmVisitorCode(1)%10000)<(s*100));=0A=
}=0A=
function urchinPathCopy(p){=0A=
 var d=3Ddocument,nx,tx,sx,i,c,cs,t,h,o;=0A=
 cs=3Dnew Array("a","b","c","v","x","z");=0A=
 h=3D_uDomain(); if (_udn && _udn!=3D"") o=3D" domain=3D"+_udn+";";=0A=
 nx=3D_uNx()+";";=0A=
 tx=3Dnew Date(); tx.setTime(tx.getTime()+(_utimeout*1000));=0A=
 tx=3Dtx.toGMTString()+";";=0A=
 sx=3Dnew Date(); sx.setTime(sx.getTime()+(_ucto*1000));=0A=
 sx=3Dsx.toGMTString()+";";=0A=
 for (i=3D0;i<6;i++){=0A=
  t=3D" expires=3D";=0A=
  if (i=3D=3D1) t+=3Dtx; else if (i=3D=3D2) t=3D""; else if (i=3D=3D5) =
t+=3Dsx; else t+=3Dnx;=0A=
  c=3D_uGC(d.cookie,"__utm"+cs[i]+"=3D"+h,";");=0A=
  if (c!=3D"-") d.cookie=3D"__utm"+cs[i]+"=3D"+c+"; path=3D"+p+";"+t+o;=0A=
 }=0A=
}=0A=
function _uCO() {=0A=
 if (!_utk || _utk=3D=3D"" || _utk.length<10) return;=0A=
 var d=3D'www.google.com';=0A=
 if (_utk.charAt(0)=3D=3D'!') d=3D'analytics.corp.google.com';=0A=
 _ubd.cookie=3D"GASO=3D"+_utk+"; path=3D"+_utcp+";"+_udo;=0A=
 var sc=3Ddocument.createElement('script');=0A=
 sc.type=3D'text/javascript';=0A=
 sc.id=3D"_gasojs";=0A=
 =
sc.src=3D'https://'+d+'/analytics/reporting/overlay_js?gaso=3D'+_utk+'&'+=
Math.random();=0A=
 document.getElementsByTagName('head')[0].appendChild(sc);  =0A=
}=0A=
function _uGT() {=0A=
 var h=3Dlocation.hash, a;=0A=
 if (h && h!=3D"" && h.indexOf("#gaso=3D")=3D=3D0) {=0A=
  a=3D_uGC(h,"gaso=3D","&");=0A=
 } else {=0A=
  a=3D_uGC(_ubd.cookie,"GASO=3D",";");=0A=
 }=0A=
 return a;=0A=
}=0A=
var _utk=3D_uGT();=0A=
if (_utk && _utk!=3D"" && _utk.length>10) {=0A=
 if (window.addEventListener) {=0A=
  window.addEventListener('load', _uCO, false); =0A=
 } else if (window.attachEvent) { =0A=
  window.attachEvent('onload', _uCO);=0A=
 }=0A=
}=0A=
=0A=
function _uNx() {=0A=
  return (new Date((new Date()).getTime()+63072000000)).toGMTString();=0A=
}=0A=

------=_NextPart_000_0000_01C832C7.14D3E190--
